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 String
klassen.
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 Arrays
klassen 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 CharSet
tillgä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.Charset
att använda CharSet
. Och vi har importerat Arrays
klassen 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()
.