使用 getBytes(编码)方法将字符串转换为 Java 中的字节数组
原文:https://www . geesforgeks . org/convert-string-to-byte-array-in-Java-using-getbytesencoding-method/
在 Java 中,双引号内的任何字符序列都被视为字符串。String 类表示字符串文本。字符串类存在于 java.lang 包中。java 中的所有字符串都是不可变的,也就是说,一旦创建,它们的值就不能改变。在 Java 中,字符串以 Unicode 字符数组的形式存储。字节数组是字节数组。我们可以使用字节数组来存储二进制数据的集合。
为了将字符串文字转换为字节数组,我们必须首先将字符序列转换为字节序列,对于这种转换,我们可以使用字符集的实例。
它是存在于java.nio 包 中的抽象类,用于定义十六位 UTF-16 代码单元序列之间的映射,即字符序列和字节序列。基本上,它主要用于字符集和 unicode 的编码和解码。我们在上面讨论的将字符串转换成字节数组的过程被定义为编码,即我们将字符串的每个字符编码成一个字节。
语法:
public byte[] getBytes(String charsetName) throws UnsupportedEncodingException
此方法使用命名字符集将字符串编码为字节,并返回字节数组,但是如果不支持命名字符集,此方法可能会引发 UnsupportedEncodingException。所以为了处理异常,我们使用 try-catch 块。
进场:
- 在下面的程序中getBytes()方法通过使用 UTF-16 (16 是一个位数)编码常量将字符串文字转换为字节。****
- *其中 UTF 是 Unicode 转换格式,用于对字符进行编码。UTF 有很多变体,如 UTF-8,它在编码字符时最少使用一个字节,其中 UTF-16 使用 2 个字节,UTF-32 使用 4 个字节。*
- *在下面的程序中,我们使用 UTF-16,它至少需要 2 个字节来编码一个字符,也就是为什么结果字节数组的长度与给定字符串的长度不同。但是如果你使用 UTF-8,你得到的结果数组的长度和输入字符串的长度一样,因为 UTF-8 需要一个字节来编码一个字符。*
*Java 语言(一种计算机语言,尤用于创建网站)*
**// Java program to Convert String to Byte Array
// Using getBytes(encoding)
import java.io.*;
import java.lang.*;
import java.nio.*;
import java.nio.charset.Charset;
import java.util.*;
// class to convert string literal into byte array
class GFG {
public static void main(String[] args)
{
// using try-catch to handle the exception
try {
// taking unput string
String s = "GeeksForGeeks";
// name of supported charset
// UTF-16 is an encoding constant
String charsetName = "UTF-16";
// UTF-16 charset encoding and storing the
// resultant bytearray.
byte[] byteArray = s.getBytes("UTF-16");
// printing the byte array to convert it into
// string
System.out.println(Arrays.toString(byteArray));
// printing the length of input string and
// resultant byte array
System.out.println("Length of String"
+ " " + s.length() + " "
+ "Length of byte Array"
+ " " + byteArray.length);
}
catch (UnsupportedEncodingException e) {
System.out.println("Unsupported cahrset :" + e);
}
}
}**
**Output
```java [-2, -1, 0, 71, 0, 101, 0, 101, 0, 107, 0, 115, 0, 70, 0, 111, 0, 114, 0, 71, 0, 101, 0, 101, 0, 107, 0, 115] Length of String 13 Length of byte Array 28
```****
版权属于:月萌API www.moonapi.com,转载请注明出处