输入:5,5,5,5
输出:5 + 5 + 5 + 5 = 20
我正在尝试添加以逗号或连字符分隔的整数列表。我创造了3个功能。 (请原谅我现在的变量名称)
delimit
函数删除逗号,连字符和空格,并将结果存储在integerList数组中。 intConvertedList
函数将字符串数组元素转换为整数类型。sumOfNumbers
函数在数组中添加元素。我正在努力将delimit
函数结果传递给intConvertedList
,最后添加intConvertedList
中的所有元素。请告诉我如何在main方法中调用函数。
namespace SumOfTwoNum
{
class Program
{
static void printArray(int[] arr)
{
Console.WriteLine("\nElements of array is: \n");
foreach (int i in arr)
{
Console.Write("\t{0}", i);
}
Console.WriteLine("\n");
}
static void delimit(string arr2)
{
char[] delimiters = new char[] { ',', '-', ' ' };
string[] integersList = arr2.Split(delimiters, StringSplitOptions.RemoveEmptyEntries);
foreach (string value in integersList)
{
Console.WriteLine(value);
}
}
static void intConvertedList(string[] arr3)
{
int[] intConvertedList = new int[arr3.Length];
for (int i = 0; i < intConvertedList.Length; i++)
{
intConvertedList[i] = int.Parse(arr3[i]);
}
}
static void sumOfNumbers(int[] arr4)
{
int sum = 0;
foreach (int number in arr4)
{
sum += number;
}
Console.WriteLine("Total: " + String.Join(" + ", arr4) + $" = {sum}");
return;
}
static void Main(string[] args)
{
Console.Write(@"Enter list of integers seperated by comma (,) or hyphen (-): ");
string numbers = Convert.ToString(Console.ReadLine());
delimit(numbers);
}
}
}
答案 0 :(得分:1)
你的intConvertedList方法没有返回任何内容。
在该函数中,创建一个新的int数组,并从输入的string数组中构建它。最后,返回int数组以进行进一步处理
如下:
static int[] intConvertedList(string[] arr3)
{
int[] intConvertedList = new int[arr3.Length];
for (int i = 0; i < intConvertedList.Length; i++)
{
intConvertedList[i] = int.Parse(arr3[i]);
}
return intConvertedList;
}
事实上,你的方法都没有返回任何东西。您应该将您的方法视为输入和输出,并考虑您想要将它们放入其中的内容,以及您希望从中获得的内容。然后你需要&#34;返回&#34;你想要的东西。
答案 1 :(得分:0)
您可以使用String Join
和LINQ Sum
来简化大量此操作。
var numStr = "5, 6, 7, 8";
var numbers = numStr.Split(new char[] { ',', '-', ' ' }, StringSplitOptions.RemoveEmptyEntries);
var numbersAddStr = String.Join(" + ", numbers);
Console.WriteLine($"Output: {numbersAddStr} = {numbers.Sum(v => Convert.ToDouble(v))}");
或者也可以使用Aggregate
。
var numbersAddStr = numbers.Aggregate(new StringBuilder(),
(builder, element) => builder.Append(" + ").Append($"{element}"),
builder => builder.Remove(0,3) // removes the leading " + "
.ToString());
答案 2 :(得分:0)
static void Main(String[] args) {
string sNumbers = "1,2,3,4,5";
int sum = 0;
int[] array = sNumbers.Split(',').Select(str => int.Parse(str)).ToArray();
for (int i = 0; i < array.Length; i++) {
sum = sum + array[i];
}
string sumString = string.Join(" + ", array) + " = ";
Console.WriteLine(sumString + sum);
Console.ReadKey();
}
这会输出您要求的内容。
希望它有所帮助。