Contando bytes de string em Java
Em Java, strings são uma coleção de caracteres que podem conter um número variável de bytes. O número de bytes que uma string ocupa depende do conjunto de caracteres usado para codificá-la.
Obtendo a contagem de bytes codificados
Para determinar o número de bytes em uma string, você pode convertê-lo em uma matriz de bytes usando o método getBytes(). Este método usa um formato de codificação como argumento e retorna uma matriz de bytes preenchida com a string codificada. O comprimento da matriz representa o número de bytes na string codificada.
Exemplo:
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
Variações de codificação
Como você pode ver no exemplo, mesmo uma string ASCII como "Hello World" pode ter diferentes contagens de bytes dependendo da codificação usado.
Conjuntos de caracteres
É crucial selecionar o conjunto de caracteres apropriado ao codificar uma string. Conjuntos de caracteres diferentes usam métodos diferentes para representar caracteres como bytes, levando a contagens de bytes variadas.
Conjunto de caracteres padrão
Se você não especificar um conjunto de caracteres, Java usa o conjunto de caracteres padrão da plataforma. No entanto, é aconselhável evitar confiar em padrões e especificar explicitamente o conjunto de caracteres para garantir resultados consistentes.
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