Calcular el recuento de bytes de una cadena en Java
En Java, las cadenas se componen de caracteres, que pueden variar en su representación de bytes según la codificación elegida. Para determinar el número de bytes en una cadena, se debe considerar la codificación de caracteres utilizada para su conversión en bytes.
Recuento de bytes dependiente de la codificación
La clave para entender El recuento de bytes es que diferentes codificaciones dan como resultado diferentes tamaños de bytes para la misma cadena. Por ejemplo, una cadena codificada en UTF-8 puede requerir 1 byte por carácter, mientras que una codificada en UTF-16 puede requerir 2 bytes por carácter.
Convertir una cadena en bytes
Para calcular el recuento de bytes, podemos convertir la cadena en una matriz de bytes usando el método getBytes():
byte[] utf8Bytes = string.getBytes("UTF-8");
byte[] utf16Bytes = string.getBytes("UTF-16");
La longitud de la matriz de bytes resultante proporciona el recuento de bytes para esa codificación en particular:
int utf8ByteCount = utf8Bytes.length;
int utf16ByteCount = utf16Bytes.length;
Ejemplo
Considere la cadena "Hola mundo":
String string = "Hello World";
// Print the number of characters in the string
System.out.println(string.length()); // 11
// Calculate the byte count for different encodings
byte[] utf8Bytes = string.getBytes("UTF-8");
byte[] utf16Bytes = string.getBytes("UTF-16");
byte[] utf32Bytes = string.getBytes("UTF-32");
// Print the byte counts
System.out.println(utf8Bytes.length); // 11
System.out.println(utf16Bytes.length); // 24
System.out.println(utf32Bytes.length); // 44
Consideraciones
Es esencial especificar explícitamente la codificación de caracteres deseada al convertir cadenas a bytes. Confiar en los valores predeterminados puede generar resultados inesperados, especialmente cuando se trabaja con idiomas que usan caracteres que no son ASCII.
Además, tenga en cuenta que ciertas codificaciones, como UTF-8, pueden usar codificación de longitud variable para los caracteres. Esto significa que un solo carácter puede representarse mediante una cantidad variable de bytes, lo que resalta aún más la importancia de la selección de codificación.
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