Java中将字节数组转为string
时间: 2023-07-28 15:54:35 浏览: 199
在Java中将字节数组转为字符串可以使用String类的构造方法,如下所示:
```java
byte[] byteArray = {97, 98, 99, 100};
String str = new String(byteArray);
System.out.println(str);
```
这段代码将字节数组 `{97, 98, 99, 100}` 转为字符串 `"abcd"` 并输出。需要注意的是,使用这种方法时会使用默认的字符集编码来将字节数组转为字符串,如果需要使用其他字符集,可以使用带有字符集参数的构造方法。
相关问题
java中将byte字节数组转为字符串
在Java中,你可以使用`String`类的构造函数或`getBytes()`方法将`byte`数组转换为字符串。以下是两种常见的做法:
1. **使用`new String(byte[])`构造函数**:
```java
byte[] byteArray = {1, 2, 3, 4, 5};
String str = new String(byteArray);
```
这里直接将字节数组作为构造函数的参数,Java会自动解码字节。
2. **使用`getBytes(charset)`方法**:
```java
byte[] byteArray = {1, 2, 3, 4, 5}; // 假设我们有一个UTF-8编码的字节数组
String encoding = "UTF-8";
String str = new String(byteArray, StandardCharsets.forName(encoding));
```
这里需要指定字符集,因为`getBytes()`默认使用平台默认字符集,而`StandardCharsets.forName(encoding)`则可以明确指定。
java汉字转16进制并转为int数组
以下是Java中将汉字转换为16进制并转为int数组的代码示例:
```java
public static int[] hexStrToIntArray(String str) {
byte[] b = str.getBytes();
int[] result = new int[b.length];
for (int i = 0; i < b.length; i++) {
result[i] = Integer.parseInt(Integer.toHexString(b[i] & 0xff), 16);
}
return result;
}
```
这个方法首先将字符串转换为字节数组,然后将每个字节转换为16进制字符串,并使用 `Integer.parseInt()` 方法将其转换为整数类型,并将结果存储在 `int` 数组中返回。
使用示例:
```java
String str = "你好";
int[] result = hexStrToIntArray(str);
System.out.println(Arrays.toString(result)); // 输出[20320, 22909]
```
这个例子将 "你好" 转换为16进制表示,然后转换为整数数组。由于 "你" 的16进制表示为 "0xC4 0xE3",整数为 20320,"好" 的16进制表示为 "0xBA 0xC3",整数为 22909。
阅读全文