Stringa in array di byte, array di byte in Stringa in Java

Oggi impareremo come convertire una stringa in un array di byte in Java. Impareremo anche come convertire un array di byte in una stringa in Java.

Stringa in array di byte

Possiamo utilizzare il metodo getBytes() della classe String per codificare la stringa in una sequenza di byte utilizzando il set di caratteri predefinito della piattaforma. Questo metodo è sovraccaricato e possiamo anche passare Charset come argomento. Ecco un semplice programma che mostra come convertire una stringa in un array di byte in Java.

package com.journaldev.util;

import java.util.Arrays;

public class StringToByteArray {

	public static void main(String[] args) {
		String str = "PANKAJ";
		byte[] byteArr = str.getBytes();
		// stampa gli elementi di byte[]
		System.out.println("String to byte array: " + Arrays.toString(byteArr));
	}
}

Di seguito viene mostrata l’output quando eseguiamo il programma precedente. Possiamo anche ottenere l’array di byte utilizzando il codice seguente.

byte[] byteArr = str.getBytes("UTF-8");

Tuttavia, se forniamo il nome del set di caratteri, allora dovremo o gestire l’eccezione UnsupportedEncodingException o lanciarla. Un approccio migliore è utilizzare la classe StandardCharsets introdotta in Java 1.7 come mostrato di seguito.

byte[] byteArr = str.getBytes(StandardCharsets.UTF_8);

Ecco tutti i diversi modi per convertire una stringa in un array di byte in Java.

Java array di byte in Stringa

Guardiamo un programma semplice che mostra come convertire un array di byte in una stringa in Java.

package com.journaldev.util;

public class ByteArrayToString {

	public static void main(String[] args) {
		byte[] byteArray = { 'P', 'A', 'N', 'K', 'A', 'J' };
		byte[] byteArray1 = { 80, 65, 78, 75, 65, 74 };

		String str = new String(byteArray);
		String str1 = new String(byteArray1);

		System.out.println(str);
		System.out.println(str1);
	}
}

La seguente immagine mostra l’output prodotto dal programma sopra. Hai notato che sto fornendo un carattere durante la creazione dell’array di byte? Funziona grazie all’autoboxing e il carattere ‘P’ viene convertito in 80 nell’array di byte. Ecco perché l’output è lo stesso per entrambe le conversioni da array di byte a stringa. La classe String ha anche un costruttore in cui possiamo fornire un array di byte e un Charset come argomento. Quindi il codice sottostante può essere utilizzato anche per convertire un array di byte in una stringa in Java.

String str = new String(byteArray, StandardCharsets.UTF_8);

La classe String ha anche un metodo per convertire un sottoinsieme dell’array di byte in una stringa.

byte[] byteArray1 = { 80, 65, 78, 75, 65, 74 };
String str = new String(byteArray1, 0, 3, StandardCharsets.UTF_8);

Il codice sopra è perfettamente corretto e il valore di ‘str’ sarà ‘PAN’. Questo è tutto sulla conversione di un array di byte in una stringa in Java.

Puoi trovare ulteriori esempi di array nel nostro Repository GitHub.

Riferimento: Documentazione API getBytes

Source:
https://www.digitalocean.com/community/tutorials/string-byte-array-java