Ciąg Java getBytes ()

Metoda Java String getBytes () koduje ciąg znaków w sekwencję bajtów i zapisuje go w tablicy bajtów.

Składnia getBytes()metody String to:

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

Tutaj string jest obiektem Stringklasy.

getBytes()Sposób powraca tablicy bajtów.

1. getBytes () bez żadnych parametrów

Jeśli nie przekażesz żadnych parametrów, getBytes()koduje ciąg przy użyciu domyślnego zestawu znaków platformy.

Przykład: getBytes () bez żadnych parametrów

 import java.util.Arrays; class Main ( public static void main(String() args) ( String str = "Java"; byte() byteArray; // convert the string to a byte array // using platform's default charset byteArray = str.getBytes(); System.out.println(Arrays.toString(byteArray)); ) )

Wynik

 (74, 97, 118, 97)

Uwaga:Arrays w powyższym przykładzie wykorzystaliśmy klasę do wydrukowania tablicy bajtów w czytelnej formie. Nie ma z tym nic wspólnego getBytes().

2. getBytes () z parametrem CharSet

Oto różne CharSetdostępne w java:

  • UTF-8 - ośmiobitowy format transformacji UCS
  • UTF-16 - szesnastobitowy format transformacji UCS
  • UTF-16BE - szesnastobitowy format transformacji UCS, kolejność bajtów big-endian
  • UTF-16LE - szesnastobitowy format transformacji UCS, kolejność bajtów little-endian
  • US-ASCII - siedmiobitowy ASCII
  • ISO-8859-1 - alfabet łaciński ISO nr 1

Przykład: getBytes () z parametrem CharSet

 import java.util.Arrays; import java.nio.charset.Charset; class Main ( public static void main(String() args) ( String str = "Java"; byte() byteArray; // using UTF-8 for encoding byteArray = str.getBytes(Charset.forName("UTF-8")); System.out.println(Arrays.toString(byteArray)); // using UTF-16 for encoding byteArray = str.getBytes(Charset.forName("UTF-16")); System.out.println(Arrays.toString(byteArray)); ) )

Wynik

 (74, 97, 118, 97) (-2, -1, 0, 74, 0, 97, 0, 118, 0, 97)

Uwaga: w powyższym programie zaimportowaliśmy java.nio.charset.Charsetdo użycia CharSet. Zaimportowaliśmy Arraysklasę, aby wydrukować tablicę bajtów w czytelnej formie.

3. getBytes () z parametrem ciągu

Możesz również określić typ kodowania getBytes()za pomocą ciągów. Kiedy używasz getBytes()w ten sposób, musisz zawinąć kod wewnątrz bloku try… catch.

Przykład: getBytes () z parametrem ciągu

 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)); // wrong encoding // throws an exception byteArray = str.getBytes("UTF-34"); System.out.println(Arrays.toString(byteArray)); ) catch (Exception e) ( System.out.println(e + " encoding is wrong"); ) ) )

Wynik

 (74, 97, 118, 97) (-2, -1, 0, 74, 0, 97, 0, 118, 0, 97) java.io.UnsupportedEncodingException: kodowanie UTF-34 jest nieprawidłowe

Uwaga: zaimportowaliśmy java.util.Arrays, aby wydrukować tablicę bajtów w czytelnej formie. To nie ma z tym nic wspólnego getBytes().

Interesujące artykuły...