Сегодня мы узнаем, как преобразовать строку в массив байтов в Java. Мы также узнаем, как преобразовать массив байтов в строку в Java.
Строка в массив байтов
Мы можем использовать метод класса String getBytes()
для кодирования строки в последовательность байтов с использованием кодировки по умолчанию платформы. Этот метод перегружен, и мы также можем передать Charset
в качестве аргумента. Вот простая программа, показывающая, как преобразовать строку в массив байтов в 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();
// печать элементов byte[]
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 в байтовом массиве. Вот почему вывод одинаков для преобразования байтового массива в строку. В классе String также есть конструктор, где мы можем указать байтовый массив и набор символов в качестве аргумента. Поэтому нижеприведенный код также можно использовать для преобразования байтового массива в строку в 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.
Вы можете ознакомиться с большим количеством примеров массивов в нашем репозитории GitHub.
Ссылка: Документация по API getBytes
Source:
https://www.digitalocean.com/community/tutorials/string-byte-array-java