Есть ли способ для java для преобразования int в символы ascii?
Java - изменение int на ascii
Ответ 1
Вы хотите преобразовать int
в char
s?:
int yourInt = 33;
char ch = (char) yourInt;
System.out.println(yourInt);
System.out.println(ch);
// Output:
// 33
// !
Или вы хотите преобразовать int
в String
s?
int yourInt = 33;
String str = String.valueOf(yourInt);
Или что это значит?
Ответ 2
Если вы сначала преобразуете int в char, вы получите свой код ascii.
Например:
int iAsciiValue = 9; // Currently just the number 9, but we want Tab character
// Put the tab character into a string
String strAsciiTab = Character.toString((char) iAsciiValue);
Ответ 3
Существует много способов конвертировать int в ASCII (в зависимости от ваших потребностей), но вот способ преобразования каждого целочисленного байта в символ ASCII:
private static String toASCII(int value) {
int length = 4;
StringBuilder builder = new StringBuilder(length);
for (int i = length - 1; i >= 0; i--) {
builder.append((char) ((value >> (8 * i)) & 0xFF));
}
return builder.toString();
}
Например, текст ASCII для "TEST" может быть представлен как массив байтов:
byte[] test = new byte[] { (byte) 0x54, (byte) 0x45, (byte) 0x53, (byte) 0x54 };
Затем вы можете сделать следующее:
int value = ByteBuffer.wrap(test).getInt(); // 1413829460
System.out.println(toASCII(value)); // outputs "TEST"
... поэтому он по существу преобразует 4 байта в 32-разрядное целое число в 4 отдельных символа ASCII (по одному символу на каждый байт).
Ответ 4
Фактически в последнем ответе String strAsciiTab = Character.toString((char) iAsciiValue); существенной частью является (char) iAsciiValue, выполняющий задание (Character.toString бесполезно)
Значение первого ответа было правильным на самом деле char ch = (char) yourInt;
если в вашемint = 49 (или 0x31), ch будет "1"
Ответ 5
В Java вы действительно хотите использовать Integer.toString для преобразования целого в соответствующее значение String. Если вы имеете дело только с цифрами 0-9, вы можете использовать что-то вроде этого:
private static final char[] DIGITS =
{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
private static char getDigit(int digitValue) {
assertInRange(digitValue, 0, 9);
return DIGITS[digitValue];
}
Или, что эквивалентно:
private static int ASCII_ZERO = 0x30;
private static char getDigit(int digitValue) {
assertInRange(digitValue, 0, 9);
return ((char) (digitValue + ASCII_ZERO));
}
Ответ 6
Вы можете преобразовать число в ASCII в java. пример преобразования числа 1 (база 10) в ASCII.
char k = Character.forDigit(1, 10);
System.out.println("Character: " + k);
System.out.println("Character: " + ((int) k));
Вывод:
Character: 1
Character: 49