使用.Split()将数字+数字存储到两个字符串数组中?

时间:2018-05-31 21:22:41

标签: c#

假设用户输入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);
}

6 个答案:

答案 0 :(得分:1)

string input = Console.ReadLine();
int[] numbers = input.Split('+').Select(Int32.Parse).ToArray();

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

答案 1 :(得分:1)

在第一个添加:
using 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);
}

答案 2 :(得分:0)

split方法存储而不是数组。然后,您可以通过整数索引访问它们。

  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]);

答案 3 :(得分:0)

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

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

此时您可能希望将first重命名为其他内容......

答案 4 :(得分:0)

用户可以在控制台中输入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]);
}

答案 5 :(得分:0)

使用Regex将所有变量拆分并放入Dictionary,如下所示:

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

另一种方式也是:

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