Calculando a contagem de bytes de uma string em Java
Em Java, strings são compostas de caracteres, que podem variar em sua representação de bytes com base em a codificação escolhida. Para determinar o número de bytes em uma string, deve-se considerar a codificação de caracteres usada para sua conversão em bytes.
Contagem de bytes dependente de codificação
A chave para a compreensão contagem de bytes é que codificações diferentes resultam em tamanhos de bytes diferentes para a mesma string. Por exemplo, uma string codificada em UTF-8 pode exigir 1 byte por caractere, enquanto uma codificada em UTF-16 pode exigir 2 bytes por caracter.
Convertendo uma string em bytes
Para calcular a contagem de bytes, podemos converter a string em uma matriz de bytes usando o método getBytes():
byte[] utf8Bytes = string.getBytes("UTF-8");
byte[] utf16Bytes = string.getBytes("UTF-16");
O comprimento da matriz de bytes resultante fornece a contagem de bytes para essa codificação específica:
int utf8ByteCount = utf8Bytes.length;
int utf16ByteCount = utf16Bytes.length;
Exemplo
Considere a string "Hello World":
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
Considerações
É essencial especificar explicitamente a codificação de caracteres desejada ao converter strings em bytes. Depender de padrões pode levar a resultados inesperados, especialmente ao trabalhar com idiomas que usam caracteres não ASCII.
Além disso, observe que certas codificações, como UTF-8, podem usar codificação de comprimento variável para caracteres. Isso significa que um único caractere pode ser representado por um número variável de bytes, destacando ainda mais a importância da seleção da codificação.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3