English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Métodos Java String (Cadeia de Caracteres)
O método getBytes() da String Java codifica a string em uma sequência de bytes e armazena-a em um array de bytes.
A sintaxe do método getBytes() é:
string.getBytes() string.getBytes(Charset charset) string.getBytes(String charsetName)
O método getBytes() retorna um array de bytes.
Se nenhum parâmetro for passado, o getBytes() usa o conjunto de caracteres padrão da plataforma para codificar a string.
import java.util.Arrays; class Main { public static void main(String[] args) { String str = "Java"; byte[] byteArray; //converter a string em um array de bytes //usando o conjunto de caracteres padrão da plataforma byteArray = str.getBytes(); System.out.println(Arrays.toString(byteArray)); } }
Resultados de Saída
[74, 97, 118, 97]
Atenção:No exemplo acima, usamos a classe Arrays para imprimir o array de bytes de forma legível. Isso não tem nada a ver com getBytes().
Estes são outros métodos disponíveis no CharSetJava:
UTF-8 - formato de conversão UCS de oito bits
UTF-16 - formato de conversão UCS de dezesseis bits
UTF-16BE - formato de conversão UCS de dezesseis bits, byte order big-endian
UTF-16LE - formato de conversão UCS de dezesseis bits, byte order little-endian
US-ASCII - ASCII de sete bits
ISO-8859-1 - ISO latino1número
import java.util.Arrays; import java.nio.charset.Charset; class Main { public static void main(String[] args) { String str = "Java"; byte[] byteArray; //usando UTF-8codificação byteArray = str.getBytes(Charset.forName("UTF-8")); System.out.println(Arrays.toString(byteArray)); //usando UTF-16codificação byteArray = str.getBytes(Charset.forName("UTF-16")); System.out.println(Arrays.toString(byteArray)); } }
Resultados de Saída
[74, 97, 118, 97] [-2, -1, 0, 74, 0, 97, 0, 118, 0, 97]
Atenção:No programa acima, importamos java.nio.charset.Charset para usar Charset. E já importamos a classe Arrays para imprimir o array de bytes de forma legível.
Também pode usar uma string para especificar o tipo de codificação do getBytes(). Quando usado dessa forma, o código deve ser encerrado embloco try ... catch。
import java.util.Arrays; class Main { public static void main(String[] args) { String str = "Java"; byte[] byteArray; try { byteArray = str.getBytes("UTF-8 System.out.println(Arrays.toString(byteArray)); byteArray = str.getBytes("UTF-16 System.out.println(Arrays.toString(byteArray)); //Codificação Errada //Lançar Exceção byteArray = str.getBytes("UTF-34 System.out.println(Arrays.toString(byteArray)); }) catch (Exception e) { System.out.println(e + "encoding is wrong"); } } }
Resultados de Saída
[74, 97, 118, 97] [-2, -1, 0, 74, 0, 97, 0, 118, 0, 97] java.io.UnsupportedEncodingException: UTF-34 encoding is wrong
Atenção:Nós importamos java.util.Array para imprimir o array de bytes em formato legível. Isso não tem nada a ver com getBytes().