在Java中将ASCII代码转换为char

时间:2012-10-22 13:50:24

标签: java

这是我下面的代码,它打印J = 74,A = 65,M = 77。如何通过向下移动字母表来打印字符K,B,N?

BufferedReader buff = new BufferedReader(new InputStreamReader(System.in));
String string = JOptionPane.showInputDialog( " Please Enter Code " );

for (int i = 0; i < string.length (); ++i) {
    char c = string.charAt(i);
    int j = (int)c;
}


System.out.println("ASCII OF "+c +" = " + j + ".");

4 个答案:

答案 0 :(得分:15)

简单地将int投射到char

System.out.println((char) 65);        // A
System.out.println((char) ('A' + 1)); // B
System.out.println((int) 'A');        // 65

请注意,这是对天真问题的原始尝试(或者至少是一个糟糕的说法)。您的代码段的最后一行已包含您需要的所有内容。也许你只是想念Java中的char实际上是一个整数类型,所以你可以将char文字与+甚至%等运算符一起使用

System.out.println((char) ('Z' + 5));
System.out.println((char) ('Z' / 2));
System.out.println((char) ('Z' % 31));

答案 1 :(得分:6)

我认为你已经提出了问题的答案。 您应该将整数转换为char,如下所示

    int j=77;
    char c=(char)j;
    System.out.println(c);

答案 2 :(得分:3)

你的意思是?

for (int i = 0; i < string.length (); ++i) {
    char c = string.charAt(i);
    c++; // next character.
    System.out.print(c);
}

答案 3 :(得分:0)

ASCII 字符的开头可以为零,因为必须正确完成从字符串到整数的转换。工作解决方案如下所示。

    String s= "01001000";
    int AsciiCode = Integer.valueOf(s, 2);
    char c= (char) AsciiCode;
    System.out.println(c);