English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

教程基础Java

Controllo dei flussi di lavoro di Java

Array di Java

Orientamento ad oggetti (I) di Java

Orientamento ad oggetti (II) di Java

Orientamento ad oggetti (III) di Java

Gestione delle eccezioni Java

List di Java

Queue (coda) di Java

Map collection di Java

Set collection di Java

Input/Output (I/O) di Java

Reader/Writer di Java

Altri argomenti di Java

Uso e esempio del metodo getBytes() di String in Java

Metodi String (stringa) Java

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

La sintassi del metodo getBytes() di String in Java è:

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

Il metodo getBytes() restituisce un array di byte.

1. getBytes() senza parametri

Se non si passano alcuni parametri, getBytes() utilizza il set di caratteri predefinito del sistema per codificare la stringa.

Esempio: getBytes() senza parametri

import java.util.Arrays;
class Main {
  public static void main(String[] args) {
    String str = "Java";
    byte[] byteArray;
    //Conversione della stringa in array di byte
    //Utilizzo del set di caratteri predefinito del sistema
    byteArray = str.getBytes();
    System.out.println(Arrays.toString(byteArray));
  }
}

Risultato di output

[74, 97, 118, 97]

Attenzione:Nel esempio sopra, abbiamo utilizzato la classe Arrays per stampare l'array di byte in modo leggibile. Non ha nulla a che fare con getBytes().

2. getBytes() con parametri CharSet

Queste sono altre funzioni disponibili in CharSetJava:

  • UTF-8 - Formato di conversione UCS a 8 bit

  • UTF-16 - Formato di conversione UCS a 16 bit

  • UTF-16BE - Formato di conversione UCS a 16 bit, ordine di byte a maggiore

  • UTF-16LE - Formato di conversione UCS a 16 bit, ordine di byte a minore

  • US-ASCII - Sette bit ASCII

  • ISO-8859-1 - ISO Latin Alphabet Number 1

Esempio: getBytes() con parametri CharSet

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

Risultato di output

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

Attenzione:Nel programma sopra, abbiamo importato java.nio.charset.Charset per utilizzare Charset. E abbiamo importato la classe Arrays per stampare l'array di byte in modo leggibile.

3. getBytes() con parametri di stringa

È possibile utilizzare una stringa per specificare il tipo di codifica di getBytes(). Quando getBytes() viene utilizzato in questo modo, è necessario avvolgere il codice inNel blocco try ... catch.

Esempio: getBytes() con parametri di 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));
            //Codifica errata
            //Lancia l'eccezione
      byteArray = str.getBytes("UTF-16");
      System.out.println(Arrays.toString(byteArray));
    } catch (Exception e) {
      System.out.println(e + " encoding is wrong");
    }
  }
}

Risultato di output

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

Attenzione:Abbiamo importato java.util. Array per stampare l'array di byte in modo leggibile. Non ha nulla a che fare con getBytes().

Metodi String (stringa) Java