当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java String getBytes()用法及代码示例


Java String 类 getBytes() 方法将字符串编码为字节序列并将其保存在字节数组中。

签名

getBytes() 方法有三种变体。字符串 getBytes() 方法的签名或语法如下:

public byte[] getBytes()
public byte[] getBytes(Charset charset)
public byte[] getBytes(String charsetName)throws UnsupportedEncodingException

参数

charset /charsetName - 方法支持的字符集的名称。

返回

字节序列。

异常抛出

UnsupportedEncodingException:当方法不支持提到的字符集时抛出。

内部实现

public byte[] getBytes() {  
        return StringCoding.encode(value, 0, value.length);  
    }

字符串类 getBytes() 方法示例

无参数 getBytes() 方法使用平台的默认字符集对字符串进行编码,即 UTF-8。以下两个示例显示相同。

文件名:StringGetBytesExample.java

public class StringGetBytesExample{
public static void main(String args[]){
String s1="ABCDEFG";
byte[] barr=s1.getBytes();
for(int i=0;i<barr.length;i++){
System.out.println(barr[i]);
}
}}

输出:

65
66
67
68
69
70
71

Java String 类 getBytes() 方法示例 2

文件名:StringGetBytesExample2.java

该方法返回一个字节数组,该数组可以再次传递给 String 构造函数以获取 String。

public class StringGetBytesExample2 {
	public static void main(String[] args) {
		String s1 = "ABCDEFG";
		byte[] barr = s1.getBytes();
		for(int i=0;i<barr.length;i++){
			System.out.println(barr[i]);
		}
		// Getting string back 
		String s2 = new String(barr);
		System.out.println(s2);
	}
}

输出:

65
66
67
68
69
70
71
ABCDEFG

Java String 类 getBytes() 方法示例 3

以下示例显示了对不同字符集的编码。

文件名:StringGetBytesExample3.java

// Import statement
import java.io.*;

public class StringGetBytesExample3 
{
// main method
public static void main(String argvs[])
{
// input string
String str = "Welcome to JavaTpoint.";
System.out.println("The input String is:");
System.out.println(str + "\n");

// inside try block encoding is 
// being done using different charsets
try
{
16 - bit UCS Transformation format
byte[] byteArr = str.getBytes("UTF-16");
System.out.println("After converted into UTF-16 the String is:");

for (int j = 0; j < byteArr.length; j++) 
{
System.out.print(byteArr[j]);
}

System.out.println("\n");

// Big Endian byte order, 16 - bit UCS Transformation format
byte[] byteArr1 = str.getBytes("UTF-16BE");
System.out.println("After converted into UTF-16BE the String is:");

for (int j = 0; j < byteArr1.length; j++) 
{
System.out.print(byteArr1[j]);
}

System.out.println("\n");

// ISO Latin Alphabet
byte[] byteArr2 = str.getBytes("ISO-8859-1");
System.out.println("After converted into ISO-8859-1 the String is:");

for (int j = 0; j < byteArr2.length; j++) 
{
System.out.print(byteArr2[j]);
}

System.out.println("\n");

// Little Endian byte order, 16 - bit UCS Transformation format
byte[] byteArr3 = str.getBytes("UTF-16LE");
System.out.println("After converted into UTF-16LE the String is:");

for (int j = 0; j < byteArr3.length; j++) 
{
System.out.print(byteArr3[j]);
}

}
catch (UnsupportedEncodingException g) 
{
System.out.println("Unsupported character set" + g);
}


}
}

输出:

The input String is:
Welcome to JavaTpoint.

After converted into UTF-16 the String is:
-2-10870101010809901110109010103201160111032074097011809708401120111010501100116046

After converted into UTF-16BE the String is:
0870101010809901110109010103201160111032074097011809708401120111010501100116046

After converted into ISO-8859-1 the String is:
871011089911110910132116111327497118978411211110511011646

After converted into UTF-16LE the String is:
8701010108099011101090101032011601110320740970118097084011201110105011001160460

Java String 类 getBytes() 方法示例 4

以下示例显示当 getBytes() 方法不支持字符集时,将引发 UnsupportedEncodingException。

文件名:StringGetBytesExample4.java

public class StringGetBytesExample4
{
// main method
public static void main(String argvs[])
{
// input string
String str = "Welcome to JavaTpoint.";
System.out.println("The input String is:");
System.out.println(str + "\n");

// encoding into UTF - 17
byte[] byteArr = str.getBytes("UTF-17");
System.out.println("After converted into UTF-17 the String is:");

for (int j = 0; j < byteArr.length; j++) 
{
System.out.print(byteArr[j]);
}


}
}

输出:

/StringGetBytesExample4.java:11:error:unreported exception UnsupportedEncodingException; must be caught or declared to be thrown
byte[] byteArr = str.getBytes("UTF-17");
                             ^
1 error




相关用法


注:本文由纯净天空筛选整理自 Java String getBytes()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。