En Java, cualquier secuencia de caracteres entre comillas dobles se trata como un literal de string. La clase de string representa el literal de la string de caracteres. La clase de string está presente en el paquete java.lang. Todos los literales de string en Java son inmutables, es decir, su valor no se puede cambiar una vez creados. En Java, los literales de string se almacenan como una array de caracteres Unicode. Una array de bytes es una array de bytes. Podemos usar una array de bytes para almacenar la colección de datos binarios.
Para convertir un literal de string en una array de bytes, primero debemos convertir la secuencia de caracteres en una secuencia de bytes y, para esta conversión, podemos usar una instancia de Charset.
Es una clase abstracta presente en el paquete java.nio y se utiliza para definir una asignación entre secuencias de unidades de código UTF-16 de dieciséis bits , es decir, secuencias de caracteres y secuencias de bytes. Básicamente, se utiliza principalmente para codificar y decodificar charset y unicode. El proceso que discutimos anteriormente para convertir un literal de string en una array de bytes se define como codificación en la que codificamos cada carácter del literal de string en un byte.
Sintaxis:
public byte[] getBytes(String charsetName) throws UnsupportedEncodingException
Este método codifica el literal de string en bytes utilizando el juego de caracteres con nombre y devuelve la array de bytes, pero este método puede generar una excepción UnsupportedEncodingException si el juego de caracteres con nombre no es compatible. Entonces, para manejar la excepción, usamos el bloque try-catch.
Acercarse:
- En el siguiente programa , el método getBytes() convierte la string literal en byte mediante el uso de la constante de codificación UTF-16 (16 es un número de bits).
- Donde UTF es el formato de transformación Unicode y se usa para codificar los caracteres. Hay muchas variaciones de UTF como UTF-8 que usa un byte como mínimo en la codificación de caracteres donde UTF-16 usa 2 bytes y UTF-32 usa 4 bytes.
- Aquí, en el siguiente programa, usamos UTF-16, que requiere al menos 2 bytes para codificar un carácter, es decir, por qué la longitud de la array de bytes resultante no es la misma que la longitud de la string dada. Pero si usa UTF-8, obtiene la longitud de la array resultante igual a la longitud de la string de entrada porque UTF-8 toma un byte para codificar un carácter.
Java
// Java program to Convert String to Byte Array // Using getBytes(encoding) import java.io.*; import java.lang.*; import java.nio.*; import java.nio.charset.Charset; import java.util.*; // class to convert string literal into byte array class GFG { public static void main(String[] args) { // using try-catch to handle the exception try { // taking input string String s = "GeeksForGeeks"; // name of supported charset // UTF-16 is an encoding constant String charsetName = "UTF-16"; // UTF-16 charset encoding and storing the // resultant bytearray. byte[] byteArray = s.getBytes("UTF-16"); // printing the byte array to convert it into // string System.out.println(Arrays.toString(byteArray)); // printing the length of input string and // resultant byte array System.out.println("Length of String" + " " + s.length() + " " + "Length of byte Array" + " " + byteArray.length); } catch (UnsupportedEncodingException e) { System.out.println("Unsupported charset :" + e); } } }
[-2, -1, 0, 71, 0, 101, 0, 101, 0, 107, 0, 115, 0, 70, 0, 111, 0, 114, 0, 71, 0, 101, 0, 101, 0, 107, 0, 115] Length of String 13 Length of byte Array 28
Publicación traducida automáticamente
Artículo escrito por mroshanmishra0072 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA