C# 字符串数组到整数数组
我试图从控制台获取一个字符串,并将所有元素放入一个int数组中。 它抛出一个错误,我的输入格式错误。我正在尝试使用“1 1 3 1 2 0 0”,我需要这些值作为int值,然后用它们执行一些计算 以下是我的尝试:C# 字符串数组到整数数组,c#,arrays,C#,Arrays,我试图从控制台获取一个字符串,并将所有元素放入一个int数组中。 它抛出一个错误,我的输入格式错误。我正在尝试使用“1 1 3 1 2 0 0”,我需要这些值作为int值,然后用它们执行一些计算 以下是我的尝试: class Program { static void Main() { string first = Console.ReadLine(); string[] First = new string[first.Length]; for (int
class Program
{
static void Main()
{
string first = Console.ReadLine();
string[] First = new string[first.Length];
for (int i = 0; i < first.Length; i++)
{
First[i] += first[i];
}
int[] Arr = new int[First.Length];//int array for string console values
for (int i = 0; i < First.Length; i++)//goes true all elements and converts them into Int32
{
Arr[i] = Convert.ToInt32(First[i].ToString());
}
for (int i = 0; i < Arr.Length; i++)//print array to see what happened
{
Console.WriteLine(Arr[i]);
}
}
}
类程序
{
静态void Main()
{
string first=Console.ReadLine();
string[]First=新字符串[First.Length];
for(int i=0;i
试试这个
string str = "1 1 3 1 2 2 0 0";
int[] array = str.Split(' ').Select(int.Parse).ToArray();
您需要使用方法在字符串数组中用空格'
拆分字符串,然后将每个元素转换为整数。您可以使用高效的方式迭代字符串数组
using System.Linq; //You need add reference to namespace
static void Main()
{
string numbersStr = "1 1 3 1 2 2 0 0";
int[] numbersArrary = numbersStr.Split(' ').Select(n => Convert.ToInt32(n)).ToArray();
}
尝试将其更改为:
string s = Console.ReadLine();
string[] arr = s.Split(' '); //Split the single string into multiple strings using space as delimiter
int[] intarr = new int[arr.Length];
for(int i=0;i<arr.Length;i++)
{
intarr[i] = int.Parse(arr[i]); //Parse the string as integers and fill the integer array
}
for(int i=0;i<arr.Length;i++)
{
Console.Write(intarr[i]);
}
string s=Console.ReadLine();
字符串[]arr=s.Split(“”)//使用空格作为分隔符将单个字符串拆分为多个字符串
int[]intarr=新int[arr.Length];
对于(int i=0;i您没有使用空格分隔符拆分字符串
string first = Console.ReadLine();
int len = first.Split(new []
{' '},StringSplitOptions.RemoveEmptyEntries).Length;
string[] First = new string[len];
for (int i = 0; i < len; i++)
{
First[i] = first.Split(' ')[i];
}
int[] Arr = new int[First.Length];//int array for string console values
for (int i = 0; i < First.Length; i++)//goes true all elements and converts them into Int32
{
Arr[i] = Convert.ToInt32(First[i].ToString());
}
for (int i = 0; i < Arr.Length; i++)//print array to see what happened
{
Console.WriteLine(Arr[i]);
}
string first=Console.ReadLine();
int len=first.Split(新[]
{'},StringSplitOptions.RemoveEmptyEntries)。长度;
string[]First=新字符串[len];
对于(int i=0;i
您不能尝试使用“1 1 3 1 2 0 0”,因为它试图解析数字之间的空格。如果您希望程序正常运行,您必须将输入字符串设置为“11312200”或者,如果分配的分隔符不超过一个,则可以创建一个字符数组或一个字符。通过传递分隔符拆分字符串,如下所示:
string Numbers = "1 1 3 1";
string[] seperatedNumbers = Numbers.Split(' ');
// perform your following actions
给你:
class Program
{
static void Main()
{
string numberStr = Console.ReadLine(); // "1 2 3 1 2 3 1 2 ...."
string[] splitted = numberStr.Split(' ');
int[] nums = new int[splitted.Length];
for(int i = 0 ; i < splitted.Length ; i++)
{
nums[i] = int.Parse(splitted[i]);
}
}
}
类程序
{
静态void Main()
{
字符串numberStr=Console.ReadLine();/“1 2 3 1 2….”
string[]splitted=numberStr.Split(“”);
int[]nums=新的int[splited.Length];
for(int i=0;i
您可以通过一个简单的扩展方法来实现这一点:
使用:
var stringArray = "0,1,2,3,4,5";
stringArray.ParseIntArray();
var stringArray = "0,1,2,3,4,5";
stringArray.TryParseIntArray();
代码:
如果你不想得到一个异常,你可以使用这个。
当抛出异常时,它返回newint[]{0}
使用:
var stringArray = "0,1,2,3,4,5";
stringArray.ParseIntArray();
var stringArray = "0,1,2,3,4,5";
stringArray.TryParseIntArray();
代码:
public static int[] TryParseIntArray(this string source, char separator = ',')
{
int[] arrInt;
try
{
arrInt = Array.ConvertAll(source.Split(separator), int.Parse);
}
catch (Exception ex)
{
arrInt = new int[] { 0 };
}
return arrInt;
}
您应该在第二行指定一个String[]
变量。这是唯一一个处理数字之间多个空格的答案。GFG这样做是为了我。感谢您提供了一个很好的答案-顺便说一句,当出现异常时,最好返回一个空数组作为一般的最佳选择?