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