C#
1string[] a = { "123", "456" };byte[] SendBuffer = Encoding.Unicode.GetBytes(a[0]); 2 3string A = new string(Encoding.Unicode.GetString(SendBuffer).ToCharArray()); 4 Console.WriteLine(A);
だと123しか表示されませんよね。
for文を使って
C#
1string[] a = { "123", "456" }; 2 for (int i = 0; i < a.Length; i++) 3 { 4 byte[] SendBuffer = Encoding.Unicode.GetBytes(a[i]); 5 string A = new string(Encoding.Unicode.GetString(SendBuffer).ToCharArray()); 6 Console.WriteLine(A); 7 }
にすれば"123"と"456"が表示できるのはわかります。
ここからが質問なのですが、string[] aの中にある"123"と"456"を同時にbyte[] SendBufferに格納したいので、
C#
1string[] a = { "123", "456" }; 2 byte[] SendBuffer = Encoding.Unicode.GetBytes(a[a.Length]); 3 string A = new string(Encoding.Unicode.GetString(SendBuffer).ToCharArray()); 4 Console.WriteLine(A);
で試したところできませんでした。
a[a.Length]が原因なのはわかります。
なぜダメなのでしょうか??
"123"と"456"を同時に格納するにはどうするのでしょうか?
よろしくお願いいたします。
UTF-16 で文字列 "123" と "456" を表すバイト列が 2 つあって、何らかの方法でそれらのバイト列を結合して一つにして、一つになったバイト列から "123456" という文字列を取得できればいいのですか。そもそもなんでそんなことがしたいのでしょう?
編集ありがとうございます。しかし少し違います。PC で編集されていたら、編集画面に </> というボタンがあります。まずコードを選択し、そのボタンを押してください。そうするとインデントやキーワードの強調などができてコードが格段に見やすくなります。
編集画面に</>というボタンがどこにあるのかわかりません・・・すみません。。。
スマホだったら無いかもしれません。PC 表示のできるブラウザならそれを使ってください。または手動で空行を入れて ```C# という一行を書き(` は半角バッククォート)、改行してコードを書き、新しい行に ``` と書いて改行し、次の行を空行にしてください。
こちらの使い方まで教えてくださり本当にありがとうございました。
編集ありがとうございました。
回答2件
あなたの回答
tips
プレビュー