2016-12-20 12 views
2

私はint number = 1782901998の長さが10の数字を持っています。私はそれらを10の異なる文字列に分割する必要があります。私は次のコードを試しましたが、出力を返しません。各番号を文字列に割り当てる必要があります。番号を個々の番号に分割する方法

string number = 7894; 
char[] numberChars = number.ToString().ToCharArray(); 
int[] digits = new int[numberChars.length]; 

for(int i = 0; i < numberChars.length; i++) { 

    digits[i] = (int)numberChars[i]; 

} 

このコードは、数字リストに57を返します。

+1

このコードは、文字のASCIIコード「と整数の配列を埋め7 '、' 8 '、' 9 '、' 4 '(55,56,57,52)のいずれかになります。 (コンパイルさえしないで) – Steve

+0

説明してください。あなたのコードが今やっているように整数の配列が必要ですか、文字列の配列が必要ですか? – Steve

+0

@ Steveこれがなぜ再開されたのかわかりません。なぜあなたはこれが[this]の複製ではないと思いますか(http://stackoverflow.com/questions/829174/is-there-an-easy-way-to-turn-an-int-ano-array-of -ints-of-each-digit)も[this]の複製です(http://stackoverflow.com/questions/4808612/how-to-split-a-number-into-individual-digits-in-c )。私はconvertをintに変換した後にOPを 'ToString()'関数で文字列に変換することができます.... – Programmer

答えて

2

あなたのコードは、number変数の文字のASCIIコードで配列を埋めているためです。あなたは以下のようなLINQを使用することができます。

int[] digits = number.Select(c => Convert.ToInt32(c.ToString())).ToArray(); 

それとも、単に文字列に各番号を割り当てる場合:

string[] digits = number.Select(c => c.ToString()).ToArray(); 
+0

ありがとうございました。..仕事があります –

+1

私たちは 'double [] digits = number.Select (char.GetNumericValue).ToArray(); 'または' int [] digits = number.Select(c =>(int)char.GetNumericValue(c))。ToArray(); '。 –

関連する問題