6

这只是为了错误检查我的代码,但我想将字节数组中的单个字节转换为字符串。有谁知道如何做到这一点?这是我到目前为止所拥有的:

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

但这当然行不通。

我用谷歌搜索了一下,但只找到了将整个 byte[] 数组转换为字符串的方法......

new String( recBuf );

我知道我可以这样做,然后筛选字符串,但如果我知道如何操作,这将使我的任务更容易。

4

8 回答 8

10

您可以使用单个字节创建一个新的字节数组:

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 这是根据您的要求将单字节转换为字符串尝试代码的方法

于 2012-07-27T13:57:10.407 回答
0

另一个替代方案可能正在转换bytechar最终string

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 回答