android 打印byte数组
时间: 2023-12-16 15:03:29 浏览: 219
可以使用以下代码将 byte 数组转换为字符串并打印出来:
```java
public static void printByteArray(byte[] bytes) {
String result = "";
for (byte b : bytes) {
result += String.format("%02X ", b);
}
System.out.println(result);
}
```
其中,`%02X` 表示以 16 进制形式输出,不足两位前面补 0。
相关问题
android studio byte数组转string 打印 中文乱码
将byte数组转换为String时,需要指定字符集。如果不指定字符集,默认使用平台的默认字符集,可能会导致中文乱码。可以使用UTF-8字符集来解决中文乱码问题。示例代码如下:
```
byte[] bytes = {72, 101, 108, 108, 111, 32, -26, -75, -117, -25, -107, -115, -27, -101, -67}; // "Hello 你好" 的字节数组
String str = new String(bytes, "UTF-8");
System.out.println(str); // 输出:Hello 你好
```
注意:如果byte数组本身就是使用UTF-8编码的字符串,那么直接使用UTF-8字符集转换即可。如果是其他字符集编码的byte数组,需要使用对应的字符集进行转换。
android 打印byte[]数组
在Android中打印`byte[]`数组通常涉及到将二进制数据转换成可以打印的形式,因为直接打印字节通常是十六进制的。你可以通过循环遍历数组并将每个字节转换为十六进制字符串来实现。这里是一个简单的示例:
```java
public String byteArrayToHex(byte[] bytes) {
char hexChars[] = "0123456789ABCDEF".toCharArray();
StringBuilder sb = new StringBuilder(bytes.length * 2);
for (int i = 0; i < bytes.length; i++) {
int v = bytes[i] & 0xFF;
sb.append(hexChars[v >> 4]);
sb.append(hexChars[v & 0x0F]);
}
return sb.toString();
}
// 使用示例
byte[] myByteArray = ...; // 你要打印的字节数组
String hexString = byteArrayToHex(myByteArray);
Log.d("TAG", "Hex representation: " + hexString);
```
在这个例子中,`byteArrayToHex()`函数会返回一个以十六进制形式表示的字符串,然后你可以将其打印到日志或显示给用户。
阅读全文