java汉字转16进制并转为int数组
时间: 2023-06-29 17:21:00 浏览: 101
以下是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。
相关问题
有一个String,这个String由16进制的中文、16进制的数字、16进制的标点符号组成,使用Java,将这个String转为utf-8格式
可以使用Java的String类的getBytes()方法将16进制的String转换为byte数组,然后再使用new String(byte[], Charset)方法将byte数组转换为utf-8格式的String。具体代码如下:
String hexString = "E4B8ADE69687E5A5BD313233E78988E38082";
byte[] bytes = new byte[hexString.length() / 2];
for (int i = 0; i < bytes.length; i++) {
bytes[i] = (byte) Integer.parseInt(hexString.substring(i * 2, i * 2 + 2), 16);
}
String utf8String = new String(bytes, StandardCharsets.UTF_8);
注意,这里的hexString是一个16进制的String,需要将其转换为byte数组。具体的转换方法是将hexString每两个字符一组,转换为对应的byte值,然后存储到byte数组中。最后使用StandardCharsets.UTF_8作为Charset参数,将byte数组转换为utf-8格式的String。
unicode转为中文Java
在Java中,可以使用Unicode编码表示中文字符。Unicode编码是一种标准,用于表示世界上所有的字符,包括中文字符。每个字符都有一个唯一的Unicode编码。
以下是将Unicode编码转换为中文字符的示例代码:
```java
String unicodeStr = "\\u4e2d\\u6587";
String chineseStr = "";
String[] strArr = unicodeStr.split("\\\\u");
for (int i = 1; i < strArr.length; i++) {
int hexVal = Integer.parseInt(strArr[i], 16);
chineseStr += (char) hexVal;
}
System.out.println(chineseStr); // 输出:中文
```
在上面的代码中,将Unicode编码的字符串 "\\u4e2d\\u6587" 转换为中文字符 "中文"。首先,使用 split() 方法将字符串按照 "\\u" 进行分割,得到一个由每个 Unicode 编码组成的字符串数组。然后,将每个 Unicode 编码转换为十进制整数,再将其强制转换为 char 类型,即为中文字符。最后将每个中文字符拼接起来,即可得到中文字符串。
阅读全文