3

こんにちは、文字列を文字の配列に分割しようとしていますが、何らかの理由で結果が期待したものではありません.デバッガーでスローされたこのコードを渡し、文字列「34325」を指定しました.部分に到達したとき何らかの理由で文字列を文字の配列に変換するコードのうち、デバッガーで 2 つの文字セットを確認できます。次のような結果が得られます。

char[0] = 51 '3' char[1] = 52 '4' char[2] = 51 '3' char[3] = 50 '2' char[4] = 53 '5'

次に、char 配列の各要素を int に変換すると、最初の数は常に take : 51 、 52 、51 、 50 、 53 になります。

私の質問は、これを修正して 3 、 4 、 3 、 2 、 5 を取得するにはどうすればよいですか? また、 toCharArray() メソッドを使用すると、この数値はどこから来るのですか? 51 ,52 ,51 ,50 53?

これは私のコードです:

    value = TextBox1.Text;

    char[] numberChars = value.ToCharArray();
    int[] numbers = numberChars.Select(x => Convert.ToInt32(x)).ToArray();

    for( int i = 0; i < numbers.Length; i++ ) {
        TextBox2.Text += numbers[i] + " ";
    }
4

2 に答える 2

2

取得した「その他の」シーケンスは、ASCII値のシーケンスです...

見てint.Parse(string)

于 2012-11-04T21:30:40.207 に答える
2

私があなたの質問を正しく理解しているなら、あなたは次のように文字列を数字を表す整数に分割したいと思います:"34325"になりnew int[] {3,4,3,2,5}ます。

コードを次のように変更して、数字を表す各文字を1桁の数字として解釈します。

 int[] numbers = numberChars.Select(x => ((int)x)-'0').ToArray();

これがideoneのデモへのリンクです。

数字、、などが表示される理由は5152対応する数字のASCIIコードが表示されるためです。

于 2012-11-04T21:30:55.033 に答える