java 字符串转字节
时间: 2023-11-14 16:10:18 浏览: 173
Java中有多种方法可以将字符串转换为字节数组。其中最常用的方法是使用String类的getBytes()方法。这个方法将字符串转换为一个字节数组,可以指定字符编码来确保正确的转换。如果没有指定字符编码,则使用平台默认字符编码,这可能会导致错误的结果。另外,还可以使用Java的标准库中的ByteBuffer类来将字符串转换为字节数组。这个类提供了一些方便的方法来处理字节和字符之间的转换。最后,还可以使用Apache Commons Codec库中的方法来进行字符串到字节数组的转换。这个库提供了一些高效的方法来处理各种编码格式的字符串和字节数组之间的转换。
相关问题
Java 16进制字符串转字节数组代码
可以使用 `java.lang.String` 类中的 `getBytes()` 方法,将 16 进制字符串转为字节数组。以下是示例代码:
```java
public static byte[] hexStringToByteArray(String hexString) {
int len = hexString.length();
byte[] byteArray = new byte[len / 2];
for (int i = 0; i < len; i += 2) {
byteArray[i / 2] = (byte) ((Character.digit(hexString.charAt(i), 16) << 4)
+ Character.digit(hexString.charAt(i+1), 16));
}
return byteArray;
}
```
这里的 `hexString` 是 16 进制字符串,返回的是对应的字节数组。
java字符串按字节截取遇汉字
在Java中,字符串按字节截取遇到汉字的情况需要特别处理。一般而言,一个汉字占据两个字节的存储空间。为了正确处理汉字在字符串中的截取,可以使用Java的String类中的getBytes()方法来获取字符串的字节数组,然后根据字节数组的长度进行截取。
具体的做法是,首先将字符串转换为字节数组,然后遍历字节数组,统计字节数,直到达到指定的截取长度。需要注意的是,若截取的最后一个字符正好是半个汉字,要将其舍弃,以保证截取后的字符串是完整的。最后,再将字节数组转换为字符串,即可得到按字节截取后的字符串。
下面是一个示例代码:
```java
public static String subStringByBytes(String str, int limit) {
byte[] bytes = str.getBytes();
int length = bytes.length;
if (limit >= length) {
return str;
}
int count = 0;
for (int i = 0; i < limit; i++) {
if ((bytes[i] & 0xFF) > 128) {
count++;
}
}
if (count % 2 != 0) {
limit = limit - 1;
}
return new String(bytes, 0, limit);
}
public static void main(String[] args) {
String str = "Hello, 你好!";
String newStr = subStringByBytes(str, 9);
System.out.println(newStr); // 输出:Hello, 你
}
```
在以上代码中,定义了一个`subStringByBytes`方法,该方法接受一个字符串和一个限制的字节数作为参数,并返回按字节截取后的字符串。在示例中,将字符串"Hello, 你好!"按字节截取9个字节长度,结果为"Hello, 你"。
阅读全文