English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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.
Se non si passano alcuni parametri, getBytes() utilizza il set di caratteri predefinito del sistema per codificare la stringa.
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().
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
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.
È 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.
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().