您好我正在努力提高我对C#的了解,我想做一个简单的任务,但我觉得很困难。
我想将字符串的每个字符解析为int数组。
int[] d = new int[10];
private void button1_Click(object sender, EventArgs e)
{
s = textBox1.Text;
d[2] = Convert.ToInt32(Convert.ToString(s[1]));
d[3] = Convert.ToInt32(Convert.ToString(s[2]));
d[4] = Convert.ToInt32(Convert.ToString(s[3]));
d[5] = Convert.ToInt32(Convert.ToString(s[4]));
.....
我知道代码错了,但我想展示一个例子。过去一小时看过Google,但发现人们希望在新行中显示字符并使用if语句进行解析。我想要类似于上面的东西。可以这样做吗?谢谢你的时间。
我在Java中找到了这行代码,这正是我想做的,但有一个等价的吗?
d1 = Integer.parseInt(String.valueOf(s.charAt(0)));
我现在有一个新问题,当我提交一个数字时,无论我输入多少数字都将返回“索引超出数组范围”。
我还需要将它限制为数组d中的10个整数。
答案 0 :(得分:4)
错误的括号,用于访问字符串中的字符。
d[2] = Convert.ToInt32(Convert.ToString(s(1)));
^
使用,
d[2] = Convert.ToInt32(Convert.ToString(s[1]));
答案 1 :(得分:3)
var intArr = "12345678".Select(c => (int)(c-'0')).ToArray();
答案 2 :(得分:1)
试试这个: -
var intArrayOfText = someTextBox.Text.ToCharArray().Select(x => (int)(x-'0'));
答案 3 :(得分:0)
如果字符串如下所示,可以这样做
string temps = "-5 8 4 0 1 17 25 -5 -3";
int[] integerArray = temps.Split(' ').Select(x => int.Parse(x)).ToArray();
Array.Sort(integerArray);
foreach (var item in integerArray)
{
Console.WriteLine(item);
}