java汉字转16进制并转为int数组
时间: 2023-06-29 19:21:00 浏览: 97
以下是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。
相关问题
java汉字转16进制并转为short数组
可以使用Java内置的方法将汉字转换为16进制字符串,然后将字符串转换为short数组,例如:
```java
public static short[] stringToShortArray(String str) {
char[] chars = str.toCharArray();
StringBuilder hex = new StringBuilder();
for (char ch : chars) {
hex.append(Integer.toHexString((int) ch));
}
String hexString = hex.toString();
if (hexString.length() % 4 != 0) {
hexString = hexString + "0000".substring(hexString.length() % 4);
}
short[] shorts = new short[hexString.length() / 4];
for (int i = 0; i < shorts.length; i++) {
shorts[i] = Short.parseShort(hexString.substring(i * 4, (i + 1) * 4), 16);
}
return shorts;
}
```
其中,`toCharArray()`方法将字符串转换为字符数组,然后遍历每个字符,将其转换为16进制字符串并拼接到`StringBuilder`对象中,最后通过`toString()`方法将结果转换为字符串。如果字符串长度不是4的倍数,则在字符串末尾补足0,使其长度为4的倍数。接着,将字符串按4个字符一组分割,并将每组字符串转换为short类型的数值,存入short数组中,并最终返回short数组。需要注意的是,这里假设一个short占用2个字节,即16位。如果short占用的字节数不同,需要根据实际情况进行调整。
java int2进制转16进制数组
以下是Java中将int类型的数字转换为二进制并存储为16进制数组的示例代码:
```java
public static String[] intToHexArray(int num) {
String binary = Integer.toBinaryString(num); // 将int转换为二进制字符串
int length = binary.length();
int arrayLength = (length + 3) / 4; // 计算16进制数组的长度
String[] hexArray = new String[arrayLength];
for (int i = 0; i < arrayLength; i++) {
int startIndex = Math.max(length - 4 * (i + 1), 0); // 计算当前16进制位对应的二进制起始位置
int endIndex = length - 4 * i;
hexArray[arrayLength - i - 1] = Integer.toHexString(Integer.parseInt(binary.substring(startIndex, endIndex), 2)); // 将二进制转换为16进制
}
return hexArray;
}
```
例如,将数字10转换为二进制并存储为16进制数组:
```java
String[] hexArray = intToHexArray(10);
System.out.println(Arrays.toString(hexArray)); // 输出结果为 [a]
```
注意,此方法仅适用于非负整数。如果要处理负数,需要使用其他方法,例如将int转换为byte数组并对其进行处理。
阅读全文