Java String getBytes ()

Η μέθοδος Java String getBytes () κωδικοποιεί τη συμβολοσειρά σε μια ακολουθία byte και την αποθηκεύει σε έναν πίνακα byte.

Η σύνταξη της getBytes()μεθόδου String είναι:

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

Εδώ, το string είναι ένα αντικείμενο της Stringκλάσης.

Η getBytes()μέθοδος επιστρέφει έναν πίνακα byte.

1. getBytes () Χωρίς παραμέτρους

Εάν δεν περάσετε καμία παράμετρο, getBytes()κωδικοποιήστε τη συμβολοσειρά χρησιμοποιώντας το προεπιλεγμένο charset της πλατφόρμας.

Παράδειγμα: 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)); ) )

Παραγωγή

 (74, 97, 118, 97)

Σημείωση: Χρησιμοποιήσαμε την Arraysκλάση στο παραπάνω παράδειγμα για να εκτυπώσουμε τον πίνακα byte σε μορφή αναγνώσιμη. Δεν έχει καμία σχέση με getBytes().

2. getBytes () με την παράμετρο CharSet

Εδώ είναι διαφορετικά CharSetδιαθέσιμα στην Java:

  • UTF-8 - Μορφή μετασχηματισμού UCS οκτώ-bit
  • UTF-16 - Μορφή μετασχηματισμού δεκαέξι bit UCS
  • UTF-16BE - Μορφή μετασχηματισμού UCS δεκαέξι bit, παραγγελία byte μεγάλου μήκους
  • UTF-16LE - Μορφή μετασχηματισμού UCS δεκαέξι bit, παραγγελία byt -endian
  • US-ASCII - Επτά-bit ASCII
  • ISO-8859-1 - ISO Λατινικό Αλφάβητο Νο. 1

Παράδειγμα: getBytes () με την παράμετρο 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)); ) )

Παραγωγή

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

Σημείωση: Στο παραπάνω πρόγραμμα, έχουμε εισαγάγει java.nio.charset.Charsetγια χρήση CharSet. Και, έχουμε εισαγάγει την Arraysτάξη για να εκτυπώσουμε τον πίνακα byte σε μορφή που μπορεί να διαβαστεί.

3. getBytes () με παράμετρο συμβολοσειράς

Μπορείτε επίσης να καθορίσετε τον τύπο κωδικοποίησης για τη getBytes()χρήση συμβολοσειρών. Όταν χρησιμοποιείτε getBytes()με αυτόν τον τρόπο, πρέπει να τυλίξετε τον κώδικα μέσα στο… catch block.

Παράδειγμα: getBytes () με παράμετρο συμβολοσειράς

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

Παραγωγή

 (74, 97, 118, 97) (-2, -1, 0, 74, 0, 97, 0, 118, 0, 97) java.io.UnupportedEncodingException: Η κωδικοποίηση UTF-34 είναι λάθος

Σημείωση: Έχουμε εισαγάγει το java.util.Arrays για να εκτυπώσουμε τον πίνακα byte σε αναγνώσιμη μορφή Δεν έχει καμία σχέση με getBytes().

ενδιαφέροντα άρθρα...