Я использую приведенный ниже код для преобразования байта в строку:
System.out.println("string " + Byte.toString((byte)0x63));
Почему он выводит "строку 99". Как изменить, чтобы он выводил "строку c"?
System.out.println(new String(new byte[]{ (byte)0x63 }, "US-ASCII"));
Обратите особое внимание, что преобразование байтов в строки всегда включает в себя кодировку. Если вы не укажете ее, вы будете использовать кодировку платформы по умолчанию, а это означает, что код может сломаться при работе в различных средах.
Вы можете использовать printf
:
System.out.printf("string %c\n", 0x63);
Вы также можете создать строку с таким форматированием, используя String#format
:
String s = String.format("string %c", 0x63);