Java 菜鳥教程

Java 流程控制

Java 數(shù)組

Java 面向?qū)ο?I)

Java 面向?qū)ο?II)

Java 面向?qū)ο?III)

Java 異常處理

Java 列表(List)

Java Queue(隊(duì)列)

Java Map集合

Java Set集合

Java 輸入輸出(I/O)

Java Reader/Writer

Java 其他主題

Java String getBytes() 使用方法及示例

Java String(字符串) 方法

Java String getBytes()方法將字符串編碼為字節(jié)序列,并將其存儲(chǔ)在字節(jié)數(shù)組中。

String getBytes()方法的語法為:

string.getBytes()
string.getBytes(Charset charset)
string.getBytes(String charsetName)

getBytes()方法返回一個(gè)字節(jié)數(shù)組。

1. getBytes()不帶任何參數(shù)

如果不傳遞任何參數(shù),getBytes()則使用平臺(tái)的默認(rèn)字符集對(duì)字符串進(jìn)行編碼。

示例:不帶任何參數(shù)的getBytes()

import java.util.Arrays;

class Main {
  public static void main(String[] args) {

    String str = "Java";
    byte[] byteArray;

    //將字符串轉(zhuǎn)換為字節(jié)數(shù)組
    //使用平臺(tái)的默認(rèn)字符集
    byteArray = str.getBytes();
    System.out.println(Arrays.toString(byteArray));
  }
}

輸出結(jié)果

[74, 97, 118, 97]

注意:在上面的示例中,我們使用Arrays類以可讀的形式打印字節(jié)數(shù)組。它與getBytes()無關(guān)。

2.使用CharSet參數(shù)的getBytes()

這是CharSetJava中可用的其他方法:

  • UTF-8 - 八位UCS轉(zhuǎn)換格式

  • UTF-16 - 十六位UCS轉(zhuǎn)換格式

  • UTF-16BE - 十六位UCS轉(zhuǎn)換格式,大端字節(jié)順序

  • UTF-16LE - 十六位UCS轉(zhuǎn)換格式,小尾數(shù)字節(jié)順序

  • US-ASCII - 七位ASCII

  • ISO-8859-1 - ISO拉丁字母1號(hào)

示例:帶有CharSet參數(shù)的getBytes()

import java.util.Arrays;
import java.nio.charset.Charset;

class Main {
  public static void main(String[] args) {

    String str = "Java";
    byte[] byteArray;

    //使用UTF-8進(jìn)行編碼
    byteArray = str.getBytes(Charset.forName("UTF-8"));
    System.out.println(Arrays.toString(byteArray));

    //使用UTF-16進(jìn)行編碼
    byteArray = str.getBytes(Charset.forName("UTF-16"));
    System.out.println(Arrays.toString(byteArray));
  }
}

輸出結(jié)果

[74, 97, 118, 97]
[-2, -1, 0, 74, 0, 97, 0, 118, 0, 97]

注意:在上面的程序中,我們導(dǎo)入了java.nio.charset.Charset以使用CharSet。 并且,我們已經(jīng)導(dǎo)入了Arrays類,以一種可讀的形式打印字節(jié)數(shù)組。

3.帶有字符串參數(shù)的getBytes()

還可以使用字符串指定getBytes()的編碼類型。getBytes()以這種方式使用時(shí),必須將代碼包裝在try ... catch塊中。

示例:帶有字符串參數(shù)的getBytes()

import java.util.Arrays;

class Main {
  public static void main(String[] args) {

    String str = "Java";
    byte[] byteArray;

    try {
      byteArray = str.getBytes("UTF-8");
      System.out.println(Arrays.toString(byteArray));

      byteArray = str.getBytes("UTF-16");
      System.out.println(Arrays.toString(byteArray));

            //錯(cuò)誤的編碼
            //拋出異常
      byteArray = str.getBytes("UTF-34");
      System.out.println(Arrays.toString(byteArray));

    } catch (Exception e) {
      System.out.println(e + " encoding is wrong");
    }

  }
}

輸出結(jié)果

[74, 97, 118, 97]
[-2, -1, 0, 74, 0, 97, 0, 118, 0, 97]
java.io.UnsupportedEncodingException: UTF-34 encoding is wrong

注意:我們已經(jīng)導(dǎo)入了java.util。數(shù)組以可讀形式打印字節(jié)數(shù)組。它與getBytes()無關(guān)。

Java String(字符串) 方法

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清