java有没有办法将int转换为ascii符号?
答案 0 :(得分:58)
是否要将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);
或者你的意思是什么?
答案 1 :(得分:15)
如果您首先将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);
答案 2 :(得分: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();
}
例如,“TEST”的ASCII文本可以表示为字节数组:
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"
...所以这实际上将32位整数中的4个字节转换为4个单独的ASCII字符(每个字节一个字符)。
答案 3 :(得分:2)
您可以在java中将数字转换为ASCII。例如,将数字1(基数为10)转换为ASCII。
char k = Character.forDigit(1, 10);
System.out.println("Character: " + k);
System.out.println("Character: " + ((int) k));
输出:
Character: 1
Character: 49
答案 4 :(得分:1)
实际上在最后一个答案中 String strAsciiTab = Character.toString((char)iAsciiValue); 必不可少的部分是(char)iAsciiValue正在做的工作(Character.toString无用)
意思是第一个答案实际上是正确的 char ch =(char)yourInt;
如果在yourint = 49(或0x31),ch将为'1'
答案 5 :(得分: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));
}
答案 6 :(得分:0)
最简单的方法是使用类型转换:
public char toChar(int c) {
return (char)c;
}