В Java нет типов без знака, поэтому ваш массив должен содержать обычные значения char
.Однако числовые литералы по умолчанию имеют тип int
, поэтому может потребоваться преобразовать значения в char
, например: (char)0x41
.То же самое относится к byte
значениям (используйте одно или другое в зависимости от того, являются ли ваши числа значениями ASCII или Unicode BMP).Вы также можете использовать escape-кодировку Unicode, например String str = "\u0041\u0042";
.Чтобы получить байтовое представление строки ASCII (или иным образом закодированной) (противоположная операция), используйте синтаксис, такой как: String charArray = "abcd".getBytes("UTF-8");
.
Также обратите внимание на различие между байтами и символами.Символ четко определен стандартом Unicode и всегда имеет одинаковое значение.Значение байта зависит от используемой кодировки символов, поэтому вы не можете просто сделать строку из байтов.Если вы используете конструктор String(byte[])
, вы неявно используете кодировку по умолчанию вашей платформы - это может быть рискованно в некоторых ситуациях.String(char[])
с другой стороны является безопасным (но если вы генерируете значения char
путем преобразования шестнадцатеричных чисел в char
s, вы де-факто конвертируете вручную из ASCII).