这只是为了错误检查我的代码,但我想将字节数组中的单个字节转换为字符串。有谁知道如何做到这一点?这是我到目前为止所拥有的:
recBuf = read( 5 );
Log.i( TAG, (String)recBuf[0] );
但这当然行不通。
我用谷歌搜索了一下,但只找到了将整个 byte[] 数组转换为字符串的方法......
new String( recBuf );
我知道我可以这样做,然后筛选字符串,但如果我知道如何操作,这将使我的任务更容易。
这只是为了错误检查我的代码,但我想将字节数组中的单个字节转换为字符串。有谁知道如何做到这一点?这是我到目前为止所拥有的:
recBuf = read( 5 );
Log.i( TAG, (String)recBuf[0] );
但这当然行不通。
我用谷歌搜索了一下,但只找到了将整个 byte[] 数组转换为字符串的方法......
new String( recBuf );
我知道我可以这样做,然后筛选字符串,但如果我知道如何操作,这将使我的任务更容易。
您可以使用单个字节创建一个新的字节数组:
new String(new byte[] { recBuf[0] })
的使用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
有一个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));
编辑:怎么样
""+ recBuf[0];//Hacky... not sure if would work
((Byte)recBuf[0]).toString();
很确定这会奏效。
将其转换为char怎么样?或者干脆
new String(buffer[0])
public static String toString(字节值)
自:API 级别 1 返回一个字符串,其中包含对指定字节值的简明、人类可读的描述。
参数值要转换为字符串的字节。返回值的可打印表示。] 1 这是根据您的要求将单字节转换为字符串尝试代码的方法
另一个替代方案可能正在转换byte
为char
最终string
Log.i(TAG, Character.toString((char) recBuf[0]));
或者
Log.i(TAG, String.valueOf((char) recBuf[0]));
您假设您使用的是 8 位字符编码(如 ASCII),这对许多其他人来说是错误的。
但是根据您的假设,您也可以使用简单的角色转换为
char yourChar = (char) yourByte;
或者如果真的需要字符串:
String string = String.valueOf((char)yourByte);