2012-10-22 389 views
11

下面是我的代碼,它打印J = 74,A = 65和M = 77。作爲字母下移的結果,我如何才能打印字符K,B,N?將ASCII碼轉換爲Java中的char

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 + "."); 

回答

14

簡單鑄造intchar

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

當心,這是在天真問題(或者至少說壞的)原始的嘗試。您代碼段的最後一行已經包含您需要的所有內容。也許你只是錯過char在Java中確實是一個整數類型,所以你可以使用char文字與運營商如+甚至%

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

你的意思是?

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

也許你的意思是'C++'? – Dunes

+0

@Dunes yes ...;) –

+4

21世紀的「真正的程序員」可以用任何語言編寫「C++」。 :-) –

6

我覺得你已經給出了你自己的回答。 你應該投的整數爲char如下

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