2012-10-22 25 views
11

Aşağıda benim kodum aşağıdadır ve J = 74, A = 65 ve M = 77 basmaktadır. Alfabenin aşağı taşınması sonucu sadece K, B, N karakterlerini yazdırmak için nasıl alabilirim?ASCII kodunu Java'da char olarak dönüştürme

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

cevap

14

Basitçe dikkat char

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

için int döküm, bu (bir sözlü ya da en azından kötü) bir naif soruna bir ham girişimdir. Snippet'inizin son satırı, ihtiyacınız olan her şeyi içerir. Belki sadece Java char gerçekten bir tamsayı türü olduğunu özledim, bu yüzden + gibi operatörleri ile char değişmezleri kullanabilir hatta

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

% Şunu musunuz?

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

aşağıdaki gibi char tamsayı kullanması gereklidir Belki 'C++' demek? – Dunes

+0

@Dunes yes ...;) –

+4

21. yüzyılın "gerçek programcısı", herhangi bir dilde "C++" yazabilir. :-) –

6

Sanırım, kendi başına bir cevap vermişsinizdir. Sen

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