У меня есть строка, которая содержит строку байте массива стоимость.
Это непонятно для начала. Если вы преобразовали двоичные данные в текст, как вы это сделали? Это должно помочь вам перевести назад. Например, если вы начали с произвольных двоичных данных (например, изображения в некоторой форме), то обычно вам нужно преобразовать в строку с использованием base64 или hex. Если вы начали с текст данных, это другое дело.
Строка не является байтовой матрицей, поэтому литье не выполняется. Для данных, которые являются фундаментальным текстом, необходимо преобразовать между двоичным и текстовым, применяя кодировку (также известную несколько смутно как кодировку на Java).
Другие ответы предложили использовать new String(byte[])
и String.getBytes()
. Я бы настоятельно рекомендовал против использования этих членов - использовать те, которые определяют кодировку вместо:
new String(byte[], String) // the string argument is the charset
new String(byte[], Charset)
String.getBytes(String) // the string argument is the charset
String.getBytes(Charset)
Если вы не указываете кодировку, он будет использовать кодировку по умолчанию платформа, которая часто не что ты хочешь. Вам нужно рассмотреть, какую кодировку вы хотите использовать.
Использование Charset
для указания кодировки более чистое, чем просто использование строки - стоит знать StandardCharsets
, если вы используете Java 7, например.
byte[] bytes = stringValue.getBytes(StandardCharsets.UTF_8);
System.out.println(new String(bytes, StandardCharsets.UTF_8);
'байт [] java.lang.String.getBytes()' (пс: Я не уверен, что вы даже искали в Интернете, потому что это довольно легко найти: Google «ява строку в массив байтов»). – sp00m
Обнаружено это в stackoverflow –
daark
Кроме того, чтобы узнать ответы, которые расскажут вам, как это сделать правильно, вы должны узнать о Кастинг. Кастинг не может помочь с такой проблемой. Используйте его осторожно, и только тогда, когда эфект заполнен. – Zane