Подтвердить что ты не робот

Java - изменение int на ascii

Есть ли способ для java для преобразования int в символы ascii?

4b9b3361

Ответ 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