2011-03-16 3 views

ответ

47

вы хотите конвертировать int с до char с ?:

int yourInt = 33; 
char ch = (char) yourInt; 
System.out.println(yourInt); 
System.out.println(ch); 
// Output: 
// 33 
// ! 

Или вы хотите конвертировать int с до String с ли?

int yourInt = 33; 
String str = String.valueOf(yourInt); 

Или что вы имеете в виду?

14

Если вы сначала преобразуете 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); 
1

На самом деле в последнем ответе Строка strAsciiTab = Character.toString ((символ) iAsciiValue); существенная часть (голец) iAsciiValue, который делает работу (Character.toString бесполезно)

Значение первый ответ был правильным на самом деле символ ч = (символ) yourInt;

если в yourint = 49 (или 0x31), ч будет «1»

2

Есть много способов, чтобы преобразовать 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 (по одному символу на каждый байт).

1

В 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)); 
} 
0

Вы можете преобразовать число в 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 
Смежные вопросы