C# 使用.Split()存储数字+;将数字分成两个字符串数组?

C# 使用.Split()存储数字+;将数字分成两个字符串数组?,c#,C#,假设用户在控制台中输入12+15之类的内容。或者简化一下,12+15。如何将这两个数字存储到不同的变量中? 显然,下面控制台在不同的行上写入输入。但我想将这两个数字存储在单独的int变量中(我知道它们需要从字符串转换,我不担心这一点)。提前感谢您的帮助 Console.Write("Input numbers separated by + : "); string input = Console.ReadLine(); string[] first = input.Split('+'); for

假设用户在控制台中输入12+15之类的内容。或者简化一下,12+15。如何将这两个数字存储到不同的变量中? 显然,下面控制台在不同的行上写入输入。但我想将这两个数字存储在单独的int变量中(我知道它们需要从字符串转换,我不担心这一点)。提前感谢您的帮助

Console.Write("Input numbers separated by + : ");
string input = Console.ReadLine();
string[] first = input.Split('+');
foreach (var num in first)
{
    Console.WriteLine(num);
}

split方法以数组的形式存储than。然后可以通过它们的整数索引访问它们

  Console.Write("Input numbers separated by + : ");
  string input = Console.ReadLine();
  string[] operands = input.Split('+');
  string firstNumber = operands[0];
  string secondNumber = operands[1];
或者可以将它们转换为整数

int firstNumber = Convert.ToInt16(operands[0]);
int secondNumber = Convert.ToInt16(operands[1]);

您是否保证获得预期格式的字符串?然后

    Console.Write("Input numbers separated by + : ");
    string input = Console.ReadLine();
    string[] first = input.Split('+');
    string a = first[0];
    string b = first[1];

此时,您可能需要先将
重命名为其他名称。

用户可以在控制台中输入2个以上的数字,下面的代码可以处理此问题

string input = Console.ReadLine();
string[] first = input.Split('+');
Int32[] numbers = new Int32[first.Length];
for (Int32 i = 0; i < first.Length; i++)
{
    numbers[i] = Int32.Parse(first[i]);
    Console.WriteLine(numbers[i]);
}
string input=Console.ReadLine();
string[]first=input.Split('+');
Int32[]number=新的Int32[first.Length];
for(Int32 i=0;i

不是有两个变量,而是有一个长度为2的数组。转移到两个实际变量是微不足道的。代码使用Linq,因此请确保使用System.Linq包含

使用
Regex
拆分所有变量并将其放入
字典中,如下所示:

string input = "12 + 15 +11.5+9"; // or get from Console

string[] inputNumbers = System.Text.RegularExpressions.Regex.Split(input , @"\s*\+\s*");

Dictionary<int, decimal> variable = new Dictionary<int, decimal>();

for (int i = 0; i < inputNumbers.Length; i++)
    variable.Add(i, decimal.Parse(inputNumbers[i]));

// test
decimal result = variable[0] * variable[1] + variable[2]; // and so on

在第一个中添加:
使用System.Linq

然后:

Console.Write("Input numbers separated by + : ");
string input = Console.ReadLine();
int[] numbers = input.Split('+').Select(Int32.Parse).ToArray();
foreach (var num in numbers )
{
    Console.WriteLine(num);
}

var num1=项目[0];//etc
-要了解更多信息,请查看
c#array index
谢谢,这是一个学习时刻。我知道split将字符串放入数组中,但我没有使用它们的索引来进一步使用!我不太担心输入格式。我正在学习,决定做一个简单的计算器。最后我做了这样的操作:“string[]split=input.split(新字符[]{',','\n','+','*','-'},StringSplitOptions.RemoveEmptyEntries);”拆分输入,然后处理所需的运算符类型。基本的东西,但要练习。谢谢,出于兴趣,为什么是字典而不是列表?当使用变量名称时,字典是更好的解决方案,例如
variable[“var0”]+variable[“var1”]
。但是在提供的示例列表或数组上更好。所以我编辑了答案。
string input = "12 + 15 +11.5+9"; // or get from Console

decimal[] variable = Array.ConvertAll(Regex.Split(input, @"\s*\+\s*"), n => decimal.Parse(n));
// test
decimal result = variable[0] * variable[1] + variable[2]; // and so on
Console.Write("Input numbers separated by + : ");
string input = Console.ReadLine();
int[] numbers = input.Split('+').Select(Int32.Parse).ToArray();
foreach (var num in numbers )
{
    Console.WriteLine(num);
}