Java String.getBytes 方法是 String 方法之一,用于使用用户指定的 Charset 将给定字符串编码为字节序列并返回字节数组。
在本文中,我们将通过示例展示如何编写 getBytes 方法。此编程语言中的 string.getBytes 的语法如下所示。
Java String getBytes 语法
此编程语言提供了三种不同的 getBytes 方法来编码字符串。以下方法不接受任何参数,并使用默认的 charset 将给定字符串编码为字节序列。
public byte[] getBytes(); // It will return Byte Array //In order to use in program String_Object.getBytes();
下面的 Java getBytes 方法将 Charset 作为参数,并使用用户指定的 Charset 将给定字符串编码为字节序列。这意味着我们允许用户指定 Charset(动态)。
public byte[] getBytes(Charset charset); // It will return Byte Array //In order to use in program String_Object.getBytes(Charset charset);
下面的 String getBytes 方法将 Charset 名称作为参数。然后通过调用指定的 charset 名称将给定字符串编码为字节序列。这意味着我们正在调用所需的 Charset 名称(静态)。
public byte[] getBytes(String Charset_Name); // It will return Byte Array //In order to use in program String_Object.getBytes(String Charset_Name);
返回值:getBytes 方法使用用户指定的 Charset 将此字符串编码为字节序列,并将结果存储在字节数组中。
Java String getBytes 示例
getBytes 方法将给定字符串编码为字节序列并返回一个字节数组。在此 Java 程序中,我们将使用平台的默认 charset 编码字符串。
提示:此方法会引发 Unsupported Encoding Exception。因此,始终建议使用 Try catch 块。
package StringFunctions;
public class getBytesMethod {
public static void main(String[] args) {
String str = "ABCDE";
byte[] byteArray = str.getBytes();
System.out.println("Byte Array after using the getBytes Method:");
arrayPrint(byteArray);
String str1 = "abcd";
byte[] bitArray = str1.getBytes();
System.out.println("\nByte Array after using the getBytes Method:");
arrayPrint(bitArray);
}
public static void arrayPrint(byte[] anByteArray) {
for (byte Number: anByteArray) {
System.out.format("%d \t", Number);
}
}
}

提示:请参考 ASCII 表 来理解 Java 编程中的字节值。
在 getBytes 示例中,我们首先声明了两个字符串变量 str1,并分配了相应的值。
以下 String Function 语句将调用 getBytes() 方法将上面指定的 str 和 str1 编码为字节序列。从上面的截图可以看出,这两个语句都使用了平台的默认 charset。
byte[] byteArray = str.getBytes(); byte[] bitArray = str1.getBytes();
以下语句用于将字节数组元素打印到输出。
arrayPrint(byteArray);
当编译器到达上述语句时,编译器将跳转到以下函数。从下面的代码片段中,我们使用了 Foreach 循环来迭代字节数组。然后我们使用 System.out.println 语句打印每个数组元素。
public static void arrayPrint(byte[] anByteArray) {
for (byte Number: anByteArray) {
System.out.format("%d \t", Number);
}
}
Java String getBytes 示例 2
在此程序中,我们将使用可用的标准 charsets 编码字符串(为最终用户提供动态功能)。
package StringFunctions;
import java.io.UnsupportedEncodingException;
public class getBytesMethod2 {
public static void main(String[] args) {
String str = new String("A" + "\u00ea" + "\u00f1" + "\u00fc" + "C");
try {
byte[] byteArray = str.getBytes();
System.out.println("Byte Array after using:");
arrayPrint(byteArray);
String s1 = new String(byteArray);
System.out.println("\nDecryted Text = " + s1);
byte[] bitArray = str.getBytes("UTF-8");
System.out.println("\nByte Array after using:");
arrayPrint(bitArray);
String s2 = new String(bitArray);
System.out.println("\nDecryted Text = " + s2);
byte[] bArray = str.getBytes("ISO-8859-1");
System.out.println("\nByte Array after using:");
arrayPrint(bArray);
String s3 = new String(bArray);
System.out.println("\nDecryted Text = " + s3);
}
catch( UnsupportedEncodingException e){
System.out.println("Unsupported character set");
}
}
public static void arrayPrint(byte[] anByteArray) {
for (byte bit: anByteArray) {
System.out.format("%d \t", bit);
}
}
}
从输出中可以看出,默认的 charset 和标准的 charset ISO-8859-1 返回相同的结果。
Byte Array after using:
65 -61 -86 -61 -79 -61 -68 67
Decryted Text = AêñüC
Byte Array after using:
65 -61 -86 -61 -79 -61 -68 67
Decryted Text = AêñüC
Byte Array after using:
65 -22 -15 -4 67
Decryted Text = A���C
首先,我们声明了一个 String 变量 str 并使用以下语句分配了非 Unicode 文本。
str = new String("A" + "\u00ea" + "\u00f1" + "\u00fc" + "C");
以下语句将使用平台的默认 charset 编码上面指定的 str。
byteArray = str.getBytes();
它将调用 public byte [] getBytes (Charset charset) 方法,使用标准 charset UTF-8 将上面指定的 str 编码为字节序列。
bitArray = str.getBytes("UTF-8");
以下语句将调用 getBytes 方法,使用标准 charset ISO-8859-1 将上面指定的 str 编码为字节序列。
bArray = str.getBytes("ISO-8859-1");
以下 Java getBytes 语句用于将字节数组转换为字符串。
s3 = new String(bArray);
getBytes 示例 3
在此程序中,我们将通过调用可用的标准 charsets 名称(静态功能)来编码字符串。
package StringFunctions;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
public class getBytesMethod3 {
public static void main(String[] args) {
String str = new String("A" + "\u00ea" + "\u00f1" + "\u00fc" + "C");
byte[] byteArray = str.getBytes(StandardCharsets.UTF_16BE);
System.out.println("Byte Array after using:");
arrayPrint(byteArray);
String s1 = new String(byteArray);
System.out.println("\nDecryted Text = " + s1);
byte[] bitArray = str.getBytes(StandardCharsets.UTF_8);
System.out.println("\nByte Array after using:");
arrayPrint(bitArray);
String s2 = new String(bitArray);
System.out.println("\nDecryted Text = " + s2);
byte[] bArray = str.getBytes(Charset.defaultCharset());
System.out.println("\nByte Array after using:");
arrayPrint(bArray);
String s3 = new String(bArray);
System.out.println("\nDecryted Text = " + s3);
}
public static void arrayPrint(byte[] anByteArray) {
for (byte bit: anByteArray) {
System.out.format("%d \t", bit);
}
}
}
Byte Array after using:
0 65 0 -22 0 -15 0 -4 0 67
Decryted Text = A���C
Byte Array after using:
65 -61 -86 -61 -79 -61 -68 67
Decryted Text = AêñüC
Byte Array after using:
65 -61 -86 -61 -79 -61 -68 67
Decryted Text = AêñüC
在示例中,首先,我们声明了一个 String 变量 str 并分配了非 Unicode 文本。
str = new String("A" + "\u00ea" + "\u00f1" + "\u00fc" + "C");
它将调用 getBytes 方法将字符串 str 编码为字节序列。它正在调用标准 charset 名称 UTF_16BE。
byte[] byteArray = str.getBytes(StandardCharsets.UTF_16BE);
调用方法,使用标准 charset 名称 UTF_8 将上面指定的 str 编码为字节序列。
byte[] bitArray = str.getBytes(StandardCharsets.UTF_8);
在下面的语句中,我们正在分配默认的 charset 名称。
byte[] bArray = str.getBytes(Charset.defaultCharset());
以下语句用于将字节数组转换为字符串。
s1 = new String(byteArray);
要使用 Charset.defaultCharset() 方法,您需要通过添加 import java.nio.charset.Charset; 来导入 charset 命名空间。
要使用 Standard Charsets,您需要通过添加 import java.io.charset.StandardCharsets; 来导入 Standard charset 命名空间。