Parse string to int array

2019-02-25 21:14发布

Hi there I am working on increasing my knowledge of C# and I want to do a simple task but am finding it difficult.

I want to parse each character of a string to an int array.

    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]));
        .....

I know the code is wrong but I wanted to show an example. Have looked at Google for the past hour but have found people wanting to display characters in new lines and using if statements to parse. I want something similar to above. Can this be done? Thank you for your time.

I found this line of code in Java which is exactly what I want to do but is there an equivilant?

    d1 = Integer.parseInt(String.valueOf(s.charAt(0)));

I now have a new problem that when i submit a number no matter how many numbers i put in it will come back with "Index was outside the bounds of the array."

I also need to limit it to 10 integers in the array d.

4条回答
对你真心纯属浪费
2楼-- · 2019-02-25 21:46
 var intArr =  "12345678".Select(c => (int)(c-'0')).ToArray();
查看更多
倾城 Initia
3楼-- · 2019-02-25 21:54

Try this:-

var intArrayOfText = someTextBox.Text.ToCharArray().Select(x => (int)(x-'0'));
查看更多
霸刀☆藐视天下
4楼-- · 2019-02-25 21:58

Wrong brackets, to access the character within string.

d[2] = Convert.ToInt32(Convert.ToString(s(1)));
                                         ^

Use,

d[2] = Convert.ToInt32(Convert.ToString(s[1]));
查看更多
趁早两清
5楼-- · 2019-02-25 22:01

Can be done like this , if the string is like below

        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);
        }
查看更多
登录 后发表回答