如何将字符串的每个值输入到整数数组C#的每个单独元素中? Windows窗体应用程序

时间:2018-01-16 20:35:10

标签: c# arrays input

我是所有这些编程惨败的新手,我想知道是否有任何方法可以实现我的标题所暗示的目标?

我有一个名为“LoyaltyNumber”的整数数组 - int [] LoyaltyNumber = new int [8]

此数组用于验证折扣代码。

我有一个名为“NumberBoxInput”的字符串,它由用户通过文本框输入的数字组成。 - NumberBoxInput = NumberBox.Text

我想知道是否有办法将整个数字放入文本框,然后将文本框中的每个数字放入LoyaltyNumber数组的每个单独元素中(例如.LoyaltyNumber [0] =输入的第一个数字文本框)

EG。如果文本框中的用户输入是数字:46764833 我怎么能认为LoyaltyNumber [0] = 4,LoyaltyNumber [1] = 6,LoyaltyNumber [2] = 7等等?

4 个答案:

答案 0 :(得分:0)

正如您在提及用户输入时提到的那样

如果用户输入文本框中的数字是:46764833

然后尝试按照

        String inputSample = "46764833";
        var chars = inputSample.ToCharArray().Select(c => c.ToString()).ToArray();
        int[] intLoyaltyNumber2 = Array.ConvertAll(chars, int.Parse);
        for (int ctr = 0; ctr < chars.Length; ctr++)
            Console.WriteLine("{0}: {1}", ctr, chars[ctr]);

答案 1 :(得分:0)

我会使用string.Split()方法将字符串的元素放入对象中,然后使用for循环将每个元素分配给数组。

示例:

//intialize recipient array
int[] numArray = new int[5];

//test string  
string nums = "1,2,3,4,5";

//assign each number to its respective element in the 'numList' array, using the ',' 
//as a separator
string[] numList = nums.Split(','); 

//assign each 'numList' element to the recipient array using a 'for' loop
for (int i = 0; i < numArray.Length; i++)
{             
    //Convert.ToInt32 converts the strings to integers so they can
    //be loaded into the recipient array       
     numArray[i]=Convert.ToInt32(numList[i]);
}

请记住,您需要在文本框中分隔您的数字(可以是逗号或空格或任何内容)。

您还需要确保您的阵列足够大,以容纳用户想要提供的所有数字。

答案 2 :(得分:0)

您可以使用char[] string.ToCharArray()函数,然后像这样转换为int:

string input = "123456789";
char[] numbersArray = input.ToCharArray();
Console.WriteLine(numbersArray);
//convert to ints ...

或者使用Char.IsDigit(char)进行验证,如下所示:

string input = "123456789";
int[] numbersArray = new int[numbers.Length];
for (int i = 0; i < numbers.Length; i++)
{                                
     if (Char.IsDigit(numbers[i]))                    
        numbersArray[i] = Int32.Parse(numbers[i].ToString());

     Console.Write(numbersArray[i]);              
}              

答案 3 :(得分:0)

试试这个,它是一个单行:

String inputSample = "46764833";


int[] sampleArray = Array.ConvertAll<char, int>(inputSample.ToCharArray().Where(c => Char.IsDigit(c)).ToArray(), System.Convert.ToInt32);