Contando bytes de cadena en Java
En Java, las cadenas son una colección de caracteres que pueden contener un número variable de bytes. El número de bytes que ocupa una cadena depende del juego de caracteres utilizado para codificarla.
Obtener el recuento de bytes codificados
Para determinar el número de bytes en una cadena, puedes convertirlo en una matriz de bytes usando el método getBytes(). Este método toma un formato de codificación como argumento y devuelve una matriz de bytes llena con la cadena codificada. La longitud de la matriz representa el número de bytes en la cadena codificada.
Ejemplo:
String string = "Hello World";
// Get UTF-8 encoded byte count
byte[] utf8Bytes = string.getBytes("UTF-8");
System.out.println(utf8Bytes.length); // prints 11
// Get UTF-16 encoded byte count
byte[] utf16Bytes = string.getBytes("UTF-16");
System.out.println(utf16Bytes.length); // prints 24
// Get UTF-32 encoded byte count
byte[] utf32Bytes = string.getBytes("UTF-32");
System.out.println(utf32Bytes.length); // prints 44
Variaciones de codificación
Como puede ver en el ejemplo, incluso una cadena ASCII como "Hello World" puede tener diferentes recuentos de bytes dependiendo de la codificación. usado.
Conjuntos de caracteres
Es crucial seleccionar el conjunto de caracteres apropiado al codificar una cadena. Diferentes conjuntos de caracteres utilizan diferentes métodos para representar caracteres como bytes, lo que genera diferentes recuentos de bytes.
Conjunto de caracteres predeterminado
Si no especifica un conjunto de caracteres, Java utiliza el juego de caracteres predeterminado de la plataforma. Sin embargo, es recomendable evitar depender de los valores predeterminados y especificar explícitamente el juego de caracteres para garantizar resultados consistentes.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3