将字符串数字转换为数组C#
假设我有一个将字符串数字转换为数组C#,c#,C#,假设我有一个字符串str=“012345”
字符串str=“012345”我想把它转换成一个数组,看起来像intAry={0,1,2,3,4,5}代码>。有什么想法吗
我试过这样
for (int i = 0; i < str.Length; i++)
{
intAry[i] = Convert.ToInt32(str[i]);
}
for(int i=0;i
但是进入数组的是48、49等。我应该在这里使用哪种正确的方法?这个怎么样
for (int i = 0; i < str.Length; i++)
intAry[i] = str[i] - '0';
string source = "12345";
Int32[] array=source.Select(x => Int32.Parse(x.ToString())).ToArray();
但是请记住,源中的每个字符都应转换为一个整数48、49等,因为这是ASCII值“0”。如果从字符中减去“0”,将得到正确的整数。不需要转换
intAry[i] = str[i] - '0';
只需减去ASCII码“0”,即48(十进制)。在ASCII和Unicode中,数字顺序是连续的。当使用“旧”编程语言(例如C)时,这是一个相当标准的技巧。我想你的意思是str[I]-“0”不应该是str[I]-“0”
?你可以选择intAry[I]=Convert.ToInt32(str[I]-“0”);是的。str[i]-“0”给了我想要的:)
intAry[i] = str[i] - '0';