Java String getBytes ()

Il metodo Java String getBytes () codifica la stringa in una sequenza di byte e la memorizza in un array di byte.

La sintassi del getBytes()metodo String sono:

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

Qui, la stringa è un oggetto della Stringclasse.

Il getBytes()metodo restituisce una matrice di byte.

1. getBytes () senza alcun parametro

Se non si passa alcun parametro, getBytes()codifica la stringa utilizzando il set di caratteri predefinito della piattaforma.

Esempio: getBytes () senza alcun parametro

 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)); ) )

Produzione

 (74, 97, 118, 97)

Nota: abbiamo usato la Arraysclasse nell'esempio sopra per stampare l'array di byte in una forma leggibile. Non ha niente a che fare con getBytes().

2. getBytes () con il parametro CharSet

Qui sono CharSetdisponibili diversi in Java:

  • UTF-8 : formato di trasformazione UCS a otto bit
  • UTF-16 - Formato di trasformazione UCS a sedici bit
  • UTF-16BE : formato di trasformazione UCS a sedici bit, ordine dei byte big-endian
  • UTF-16LE - Formato di trasformazione UCS a sedici bit, ordine dei byte little-endian
  • US-ASCII : ASCII a sette bit
  • ISO-8859-1 - Alfabeto latino ISO n. 1

Esempio: getBytes () con il parametro 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)); ) )

Produzione

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

Nota: nel programma sopra, abbiamo importato java.nio.charset.Charsetda utilizzare CharSet. Inoltre, abbiamo importato la Arraysclasse per stampare l'array di byte in una forma leggibile.

3. getBytes () con parametro stringa

È inoltre possibile specificare il tipo di codifica getBytes()utilizzando le stringhe. Quando si utilizza getBytes()in questo modo, è necessario racchiudere il codice all'interno del blocco try… catch.

Esempio: getBytes () con parametro stringa

 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"); ) ) )

Produzione

 (74, 97, 118, 97) (-2, -1, 0, 74, 0, 97, 0, 118, 0, 97) java.io.UnsupportedEncodingException: la codifica UTF-34 è errata

Nota: abbiamo importato java.util.Arrays per stampare l'array di byte in una forma leggibile. Non ha niente a che fare con getBytes().

Articoli interessanti...