android byte[]和string转换
时间: 2023-06-05 20:47:54 浏览: 182
在Android中,byte[]和String之间的转换可以通过以下方法实现:
1. byte[]转String:
byte[] bytes = {97, 98, 99};
String str = new String(bytes);
2. String转byte[]:
String str = "abc";
byte[] bytes = str.getBytes();
需要注意的是,在转换过程中需要指定字符编码,否则可能会出现乱码问题。常用的字符编码有UTF-8、GBK等。例如:
byte[] bytes = {97, 98, 99};
String str = new String(bytes, "UTF-8");
String str = "abc";
byte[] bytes = str.getBytes("GBK");
相关问题
android byte转string
可以使用Java中的String类的构造方法将byte数组转换为字符串,代码如下:
```
byte[] bytes = {97, 98, 99, 100, 101};
String str = new String(bytes);
```
这样就可以将byte数组转换为字符串了。注意,需要指定byte数组的编码方式,否则在转换过程中可能会出现乱码。例如,如果byte数组是使用UTF-8编码的,可以使用如下代码:
```
byte[] bytes = {97, 98, 99, 100, 101};
String str = new String(bytes, "UTF-8");
```
这样就可以正确地将byte数组转换为UTF-8编码的字符串了。
android byte数组转16进制string
可以使用以下代码将 byte 数组转换为 16 进制字符串:
```java
public static String bytesToHex(byte[] bytes) {
StringBuilder hexString = new StringBuilder();
for (byte b : bytes) {
String hex = Integer.toHexString(0xFF & b);
if (hex.length() == 1) {
hexString.append('0');
}
hexString.append(hex);
}
return hexString.toString();
}
```
调用方法:
```java
byte[] byteArray = {0x01, 0x02, 0x03, (byte)0xFF};
String hexString = bytesToHex(byteArray);
System.out.println(hexString); // 输出:010203ff
```
注意:Java 中的 byte 类型是有符号的,范围为 -128 到 127。如果需要将 8 位二进制数表示的无符号数转为 byte 类型,可以使用 `int` 类型与 `0xFF` 进行按位与运算,如 `(byte)0xFF`。