Java Dizesi getBytes ()

Java String getBytes () yöntemi, dizeyi bir bayt dizisi halinde kodlar ve bir bayt dizisinde saklar.

String getBytes()yönteminin sözdizimi şunlardır:

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

Burada string, Stringsınıfın bir nesnesidir .

getBytes()Yöntem, bir bayt dizisi döndürür.

1. Herhangi Bir Parametre Olmadan getBytes ()

Herhangi bir parametre getBytes()iletmezseniz, dizeyi platformun varsayılan karakter kümesini kullanarak kodlar.

Örnek: Herhangi Bir Parametre Olmadan getBytes ()

 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)); ) )

Çıktı

 (74, 97, 118, 97)

Not:Arrays Bayt dizisini okunabilir bir biçimde yazdırmak için yukarıdaki örnekteki sınıfı kullandık . Bununla hiçbir ilgisi yoktur getBytes().

2. getBytes () CharSet Parametresiyle

İşte java'da farklı CharSetmevcut:

  • UTF-8 - Sekiz bitlik UCS Dönüşüm Biçimi
  • UTF-16 - On altı bitlik UCS Dönüşüm Formatı
  • UTF-16BE - On altı bit UCS Dönüşüm Biçimi, büyük endian bayt sırası
  • UTF-16LE - On altı bitlik UCS Dönüşüm Biçimi, küçük endian bayt sırası
  • US-ASCII - Yedi bit ASCII
  • ISO-8859-1 - ISO Latin Alfabesi No. 1

Örnek: CharSet Parametresiyle getBytes ()

 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)); ) )

Çıktı

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

Not: Yukarıdaki programda java.nio.charset.Charsetkullanmak üzere içe aktarmıştık CharSet. Ve Arraysbayt dizisini okunabilir bir biçimde yazdırmak için sınıfı içe aktardık .

3. getBytes () String Parametresiyle

getBytes()Dizeleri kullanmak için kodlama türünü de belirtebilirsiniz . getBytes()Bu şekilde kullandığınızda , kodu try… catch bloğunun içine sarmalısınız.

Örnek: getBytes () String Parametresiyle

 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"); ) ) )

Çıktı

 (74, 97, 118, 97) (-2, -1, 0, 74, 0, 97, 0, 118, 0, 97) java.io.UnsupportedEncodingException: UTF-34 kodlaması yanlış

Not: Bayt dizisini okunabilir bir biçimde yazdırmak için java.util.Arrays'i içe aktardık. Onunla hiçbir ilgisi yok getBytes().

Ilginç makaleler...