Java String getBytes ()

Metoden Java String getBytes () kodar strängen i en sekvens av byte och lagrar den i en byte-array.

Syntaxen för strängmetoden getBytes()är:

 string.getBytes() string.getBytes(Charset charset) string.getBytes(String charsetName)

Här är sträng ett objekt i Stringklassen.

Den getBytes()metoden returnerar en byte array.

1. getBytes () utan parametrar

Om du inte skickar några parametrar getBytes()kodar du strängen med hjälp av plattformens standardteckenuppsättning.

Exempel: getBytes () utan några parametrar

 import java.util.Arrays; class Main ( public static void main(String() args) ( String str = "Java"; byte() byteArray; // convert the string to a byte array // using platform's default charset byteArray = str.getBytes(); System.out.println(Arrays.toString(byteArray)); ) )

Produktion

 (74, 97, 118, 97)

Obs! Vi har använt Arraysklassen i exemplet ovan för att skriva ut byte-arrayen i en läsbar form. Det har ingenting att göra med getBytes().

2. getBytes () med CharSet-parameter

Här finns olika CharSettillgängliga i Java:

  • UTF-8 - Åtta-bitars UCS-transformationsformat
  • UTF-16 - Sexton-bitars UCS-transformationsformat
  • UTF-16BE - Sexton-bitars UCS-transformationsformat, stor endian-byteordning
  • UTF-16LE - Sexton-bitars UCS-transformationsformat, liten endian-byteordning
  • US-ASCII - Sju-bitars ASCII
  • ISO-8859-1 - ISO Latin alfabet nr 1

Exempel: getBytes () med CharSet-parameter

 import java.util.Arrays; import java.nio.charset.Charset; class Main ( public static void main(String() args) ( String str = "Java"; byte() byteArray; // using UTF-8 for encoding byteArray = str.getBytes(Charset.forName("UTF-8")); System.out.println(Arrays.toString(byteArray)); // using UTF-16 for encoding byteArray = str.getBytes(Charset.forName("UTF-16")); System.out.println(Arrays.toString(byteArray)); ) )

Produktion

 (74, 97, 118, 97) (-2, -1, 0, 74, 0, 97, 0, 118, 0, 97)

Obs! I ovanstående program har vi importerat för java.nio.charset.Charsetatt använda CharSet. Och vi har importerat Arraysklassen för att skriva ut byte-arrayen i en läsbar form.

3. getBytes () med strängparameter

Du kan också ange kodningstypen för att getBytes()använda strängar. När du använder getBytes()på det här sättet måste du lägga in koden inuti try … catch block.

Exempel: getBytes () med strängparameter

 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)); // wrong encoding // throws an exception byteArray = str.getBytes("UTF-34"); System.out.println(Arrays.toString(byteArray)); ) catch (Exception e) ( System.out.println(e + " encoding is wrong"); ) ) )

Produktion

 (74, 97, 118, 97) (-2, -1, 0, 74, 0, 97, 0, 118, 0, 97) java.io.OnsupportedEncodingException: UTF-34-kodning är fel

Obs! Vi har importerat java.util.Arrays för att skriva ut byte-arrayen i en läsbar form. Det har inget att göra med getBytes().

Intressanta artiklar...