Автор оригинала: Pankaj Kumar.
Сегодня мы узнаем, как преобразовать строку в массив байтов в java. Мы также узнаем, как преобразовать массив байтов в строку в Java.
Массив из строки в байт
Мы можем использовать класс String getBytes()
метод для кодирования строки в последовательность байтов, используя кодировку платформы по умолчанию. Этот метод перегружен, и мы также можем передать кодировку
в качестве аргумента.
Вот простая программа, показывающая, как преобразовать строку в массив байтов на java.
package com.journaldev.util; import java.util.Arrays; public class StringToByteArray { public static void main(String[] args) { String str = "PANKAJ"; byte[] byteArr = str.getBytes(); // print the byte[] elements System.out.println("String to byte array: " + Arrays.toString(byteArr)); } }
На рисунке ниже показан вывод, когда мы запускаем вышеуказанную программу.
Мы также можем получить массив байтов, используя приведенный ниже код.
byte[] byteArr = str.getBytes("UTF-8");
Однако, если мы предоставим имя кодировки, нам придется либо поймать UnsupportedEncodingException
|/исключение , либо выбросить его. Лучший подход-использовать класс StandardCharsets , представленный в Java 1.7, как показано ниже.
byte[] byteArr = str.getBytes(StandardCharsets.UTF_8);
Это все разные способы преобразования строки в массив байтов в java.
Массив байтов Java в строку
Давайте рассмотрим простую программу, показывающую, как преобразовать массив байтов в строку на Java.
package com.journaldev.util; public class ByteArrayToString { public static void main(String[] args) { byte[] byteArray = { 'P', 'A', 'N', 'K', 'A', 'J' }; byte[] byteArray1 = { 80, 65, 78, 75, 65, 74 }; String str = new String(byteArray); String str1 = new String(byteArray1); System.out.println(str); System.out.println(str1); } }
На рисунке ниже показан результат, полученный вышеуказанной программой.
Вы заметили, что я предоставляю символ при создании массива байтов?
Это работает из-за автобокса, и символ ” P ” преобразуется в 80 в массиве байтов. Вот почему выходные данные одинаковы как для преобразования массива байтов в строку.
Строка также имеет конструктор, в котором мы можем предоставить массив байтов и кодировку в качестве аргумента. Таким образом, приведенный ниже код также может быть использован для преобразования массива байтов в строку в Java.
String str = new String(byteArray, StandardCharsets.UTF_8);
Класс String также имеет метод преобразования подмножества массива байтов в строку.
byte[] byteArray1 = { 80, 65, 78, 75, 65, 74 }; String str = new String(byteArray1, 0, 3, StandardCharsets.UTF_8);
Приведенный выше код идеально подходит, и значение ” str “будет ” PAN”. Это все о преобразовании массива байтов в строку в Java.
Ссылка: Документ по API getBytes