Chuỗi Java getBytes ()

Phương thức Java String getBytes () mã hóa chuỗi thành một chuỗi byte và lưu trữ nó trong một mảng byte.

Cú pháp của getBytes()phương thức String là:

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

Ở đây, string là một đối tượng của Stringlớp.

Các getBytes()phương thức trả về một mảng byte.

1. getBytes () Không có bất kỳ tham số nào

Nếu bạn không chuyển bất kỳ tham số nào, hãy getBytes()mã hóa chuỗi bằng bộ ký tự mặc định của nền tảng.

Ví dụ: getBytes () Không có bất kỳ tham số nào

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

Đầu ra

 (74, 97, 118, 97)

Lưu ý: Chúng ta đã sử dụng Arrayslớp trong ví dụ trên để in mảng byte ở dạng có thể đọc được. Nó không có gì để làm với getBytes().

2. getBytes () Với Tham số CharSet

Dưới đây là các khác nhau CharSetcó sẵn trong java:

  • UTF-8 - Định dạng chuyển đổi UCS tám bit
  • UTF-16 - Định dạng chuyển đổi UCS 16 bit
  • UTF-16BE - Định dạng chuyển đổi UCS 16 bit, thứ tự byte lớn
  • UTF-16LE - Định dạng chuyển đổi UCS mười sáu bit, thứ tự byte nhỏ
  • US-ASCII - ASCII bảy bit
  • ISO-8859-1 - ISO Bảng chữ cái Latinh số 1

Ví dụ: getBytes () Với Tham số CharSet

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

Đầu ra

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

Lưu ý: Trong chương trình trên, chúng ta đã nhập java.nio.charset.Charsetđể sử dụng CharSet. Và, chúng ta đã nhập Arrayslớp để in mảng byte ở dạng có thể đọc được.

3. getBytes () Với tham số chuỗi

Bạn cũng có thể chỉ định kiểu mã hóa để getBytes()sử dụng chuỗi. Khi bạn sử dụng getBytes()theo cách này, bạn phải bọc mã bên trong khối try… catch.

Ví dụ: getBytes () Với tham số chuỗi

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

Đầu ra

 (74, 97, 118, 97) (-2, -1, 0, 74, 0, 97, 0, 118, 0, 97) java.io.UnsupportedEncodingException: UTF-34 encoding is sai

Lưu ý: Chúng tôi đã nhập java.util.Arrays để in mảng byte ở dạng có thể đọc được. Nó không có gì để làm với getBytes().

thú vị bài viết...