使用 getBytes(Charset) 方法在Java中将字符串转换为字节数组
在Java中,字符串是由 char 数组在内部支持的对象。因此,要将字符串转换为字节数组,我们需要一个getBytes(Charset)方法。此方法使用给定的字符集将给定的字符串转换为字节序列,并返回一个字节数组。它是字符串类的预定义函数。这里,在这个方法中我们使用了一个 Charset 类的实例,这个类提供了一个字符序列和一个字节序列之间的命名映射。定义了许多字符集,将在下面讨论。
- US-ASCII:七位 ASCII,又名 ISO646-US,又名 Unicode字符集的基本拉丁块
- ISO-8859-1: ISO 拉丁字母 1 号,又名 ISO-LATIN-1
- UTF-8:八位 UCS 转换格式
- UTF-16BE:十六位 UCS 转换格式,大端字节序
- UTF-16LE:十六位 UCS 转换格式,小端字节序
- UTF-16:十六位 UCS 转换格式,字节顺序由可选的字节顺序标记标识。
句法:
public byte[] getBytes(Charset charset)
参数:该函数接受一个参数,即用于对字符串进行编码的字符串集
返回类型:此函数返回结果字节数组。
笔记:
- 此方法始终使用其字符集的默认替换字节数组替换格式错误的输入和不可映射的字符序列。
- 如果给定的字符集不是有效的字符集,则此方法将抛出UnsupportedEncodingException。
- 字节数组的长度与给定的字符串不同,它取决于字符编码。
让我们借助给定的示例讨论如何将字符串转换为字节数组:
示例 1:
Java
// Java program to illustrate how to
// convert a string to byte array
// Using getBytes(Charset charset)
import java.io.*;
class GFG{
public static void main (String[] args)
{
// Initializing String
String ss = "Hello GeeksforGeeks";
// Display the string before conversion
System.out.println("String: " + ss);
try
{
// Converting string to byte array
// Using getBytes(Charset charset) method
// Here, we converts into UTF-16 values
byte[] res = ss.getBytes("UTF-16");
// Displaying converted string after conversion
// into UTF-16
System.out.println("Result : ");
for(int i = 0; i < res.length; i++)
{
System.out.print(res[i]);
}
}
catch (UnsupportedEncodingException g)
{
System.out.println("Unsupported character set" + g);
}
}
}
Java
// Java program to illustrate how to
// convert a string to byte array
// Using getBytes(Charset charset)
import java.io.*;
import java.util.Arrays;
class GFG{
public static void main (String[] args)
{
// Initializing String
String ss = "Hello GFG";
// Display the string before conversion
System.out.println("String: " + ss);
try
{
// Converting string to byte array
// Using getBytes(Charset charset) method
// Here, we converts into US-ASCII values
byte[] res = ss.getBytes("US-ASCII");
// Displaying converted string after conversion
// into US-ASCII
System.out.println("Byte Array:" + Arrays.toString(res));
}
catch (UnsupportedEncodingException g)
{
System.out.println("Unsupported character set" + g);
}
}
}
输出
String: Hello GeeksforGeeks
Result :
-2-1072010101080108011103207101010101010701150102011101140710101010101070115
示例 2:
Java
// Java program to illustrate how to
// convert a string to byte array
// Using getBytes(Charset charset)
import java.io.*;
import java.util.Arrays;
class GFG{
public static void main (String[] args)
{
// Initializing String
String ss = "Hello GFG";
// Display the string before conversion
System.out.println("String: " + ss);
try
{
// Converting string to byte array
// Using getBytes(Charset charset) method
// Here, we converts into US-ASCII values
byte[] res = ss.getBytes("US-ASCII");
// Displaying converted string after conversion
// into US-ASCII
System.out.println("Byte Array:" + Arrays.toString(res));
}
catch (UnsupportedEncodingException g)
{
System.out.println("Unsupported character set" + g);
}
}
}
输出
String: Hello GFG
Byte Array:[72, 101, 108, 108, 111, 32, 71, 70, 71]