java中如何将字符串转换为字节数组

时间:2020-02-23 14:34:47  来源:igfitidea点击:

有时,我们需要将字符串转换为字节数组。
我们可以使用string的getBytes()方法来执行它,

方法语法:

public byte[] getBytes()

String getBytes示例:

package org.arpit.theitroad;
 
public class StringBytesExample {
 public static void main(String[] args) {
  String str1 = "theitroad";
  byte[] bytes=str1.getBytes();
  
  System.out.println(str1.length());
  System.out.println(bytes.length);
  System.out.println(bytes.toString());
  
 }
}

运行上面的程序时,我们将得到以下输出:

9
9
[B@e1641c0

GetBytes还有一个更加过载的方法

方法语法:

public byte[] getBytes(String charSetName)

它将字符串编码为指定的Charset格式。
我们可以从http://docs.oracle.com/javase/7/docs/api/java/nio/charset/charset.html读取关于charset

允许在Charset UTF-16LE和UTF-16BE中编码上面的字符串

package org.arpit.theitroad;
 
import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;
 
public class StringBytesExample {
 public static void main(String[] args) {
  String str1 = "theitroad";
  byte[] bytesDef=str1.getBytes();
  byte[] bytesUTFLE = null;
  byte[]  bytesUTFBE = null;
  try {
   bytesUTFLE = str1.getBytes("UTF-16LE");
   bytesUTFBE=str1.getBytes("UTF-16BE");
  } catch (UnsupportedEncodingException e) {
   e.printStackTrace();
  }
  
  System.out.println("Encoding using default charSet");
  for (int i = 0; i < bytesDef.length; i++) {
   System.out.print(bytesDef[i]);
  }
  System.out.println("n----------------------------------");
  System.out.println("nEncoding using UTF-16LE charset");
  for (int i = 0; i < bytesUTFLE.length; i++) {
   System.out.print(bytesUTFLE[i]);
  }
  System.out.println("n----------------------------------");
  System.out.println("nEncoding using UTF-16BE charset");
  for (int i = 0; i < bytesUTFBE.length; i++) {
   System.out.print(bytesUTFBE[i]);
  } 
 }
}

运行上面的程序时,我们将得到以下输出:

Encoding using default charSet
10697118975098108111103
---------------------------------
 
Encoding using UTF-16LE charset
10609701180970500980108011101030
---------------------------------
 
Encoding using UTF-16BE charset
01060970118097050098010801110103