6

これは単にコードのエラー チェックのためですが、バイト配列から 1 バイトを文字列に変換したいと考えています。誰もこれを行う方法を知っていますか? これは私がこれまでに持っているものです:

recBuf = read( 5 );
Log.i( TAG,  (String)recBuf[0] );

しかし、もちろんこれはうまくいきません。

少しグーグルで調べましたが、バイト[]配列全体を文字列に変換する方法しか見つかりませんでした...

new String( recBuf );

それを実行してからひもをふるいにかけるだけでよいことはわかっていますが、この方法で操作する方法を知っていれば、作業が簡単になります。

4

8 に答える 8

10

1バイトで新しいバイト配列を作成できます。

new String(new byte[] { recBuf[0] })
于 2012-07-27T13:53:15.523 に答える
8

の使用toString方法Byte

String s=Byte.toString(recBuf[0] );

上記を試してみてください。動作します。

例:

 byte b=14;
String s=Byte.toString(b );
System.out.println("String value="+  s);

出力:

String value=14
于 2012-07-27T13:57:26.257 に答える
2

という形式のStringコンストラクタがありString(byte[] bytes, int offset, int length)ます。いつでも変換に使用できます。

たとえば、次のようになります。

    byte[] bite = new byte[]{65,67,68};

    for(int index = 0; index < bite.length; index++)
        System.out.println(new String(bite, index,1));
于 2012-07-27T14:00:35.757 に答える
0

編集:どうですか

""+ recBuf[0];//Hacky... not sure if would work
((Byte)recBuf[0]).toString();

確かにそれはうまくいくでしょう。

于 2012-07-27T13:54:18.913 に答える
0

それをcharに変換するのはどうですか?または単に

  new String(buffer[0])
于 2012-07-27T13:55:19.117 に答える
0

public static String toString (バイト値)

導入されたバージョン: API レベル 1 指定されたバイト値の人間が読める簡潔な説明を含む文字列を返します。

パラメータ値は、文字列に変換するバイトです。値の印刷可能な表現を返します。] 1 これは、要件に従って、1 バイトを文字列に変換する方法です

于 2012-07-27T13:57:10.407 に答える
0

別の代替手段が最終的に変換byteされる可能性がありますcharstring

Log.i(TAG, Character.toString((char) recBuf[0]));

または

Log.i(TAG, String.valueOf((char) recBuf[0]));
于 2012-07-27T14:02:34.727 に答える
0

あなたは 8 ビット文字エンコーディング (ASCII など) を使用していると仮定していますが、これは他の多くの人にとっては間違っています。

しかし、あなたの仮定では、次のような文字への単純なキャストを使用することもできます

char yourChar = (char) yourByte;

または本当に文字列が必要な場合:

String string = String.valueOf((char)yourByte);
于 2012-07-27T14:09:03.057 に答える