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