Java教程

Java String getBytes()

Java String getBytes()

Java String getBytes() 方法将字符串编码为字节序列并将其存储在字节数组中。
String getBytes() 方法的语法是:
string.getBytes()
string.getBytes(Charset charset)
string.getBytes(String charsetName)
这里, stringString 类的对象。
getBytes() 方法返回一个字节数组。

1. getBytes() 不带任何参数

如果不传递任何参数, getBytes() 将使用平台的默认字符集对字符串进行编码。

示例: 不带任何参数的 getBytes()

import java.util.Arrays;
class Main {
  public static void main(String[] args) {
    String str = "Java";
    byte[] byteArray;
    // convert the string to a byte array
    // using platform's default charset
    byteArray = str.getBytes();
    System.out.println(Arrays.toString(byteArray));
  }
}
输出
[74, 97, 118, 97]
注意: 我们在上面的例子中使用了 Arrays 类以可读的形式打印字节数组。它与 getBytes() 无关。

2. getBytes() 带 CharSet 参数

这里有不同的 CharSet 在 java 中可用:
UTF-8-八位 UCS 转换格式 UTF-16-十六位 UCS 转换格式 UTF-16BE-十六位 UCS 转换格式,大端字节序 UTF-16LE-十六位 UCS 转换格式,小端字节序 US-ASCII-七位 ASCII ISO-8859-1-ISO 拉丁字母第 1 号

示例: getBytes() with CharSet 参数

import java.util.Arrays;
import java.nio.charset.Charset;
class Main {
  public static void main(String[] args) {
    String str = "Java";
    byte[] byteArray;
    // using UTF-8 for encoding
    byteArray = str.getBytes(Charset.forName("UTF-8"));
    System.out.println(Arrays.toString(byteArray));
    // using UTF-16 for encoding
    byteArray = str.getBytes(Charset.forName("UTF-16"));
    System.out.println(Arrays.toString(byteArray));
  }
}
输出
[74, 97, 118, 97]
[-2,-1, 0, 74, 0, 97, 0, 118, 0, 97]
注意: 在上面的程序中,我们导入了java.nio.charset.Charset来使用CharSet。并且,我们导入了 Arrays 类,以可读的形式打印字节数组。

3. getBytes() 带字符串参数

您还可以使用字符串将编码类型指定为 getBytes()。以这种方式使用 getBytes() 时,必须将代码包裹在 try...catch 中阻止。

示例: getBytes() 带字符串参数

import java.util.Arrays;
class Main {
  public static void main(String[] args) {
    String str = "Java";
    byte[] byteArray;
    try {
      byteArray = str.getBytes("UTF-8");
      System.out.println(Arrays.toString(byteArray));
      byteArray = str.getBytes("UTF-16");
      System.out.println(Arrays.toString(byteArray));
      // wrong encoding
      // throws an exception
      byteArray = str.getBytes("UTF-34");
      System.out.println(Arrays.toString(byteArray));
    } catch (Exception e) {
      System.out.println(e + " encoding is wrong");
    }
  }
}
输出
[74, 97, 118, 97]
[-2,-1, 0, 74, 0, 97, 0, 118, 0, 97]
java.io.UnsupportedEncodingException: UTF-34 encoding is wrong
注意: 我们已经导入了 java.util.Arrays 以可读的形式打印字节数组。它与 getBytes() 无关。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4