2012-10-22 13 views
11

Hier ist mein Code unten und es druckt J = 74, A = 65 und M = 77. Wie bekomme ich es, nur die Buchstaben K, B, N als Ergebnis der Bewegung des Alphabets zu drucken?Konvertieren von ASCII-Code in char in Java

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

Antwort

14

Einfach int zu char

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

Vorsicht Gießen, dies ist ein roher Versuch eines naives Problem (oder zumindest ein schlechten gesprochen). Die letzte Zeile Ihres Snippets enthält bereits alles, was Sie benötigen. Vielleicht vermissen Sie nur, dass char in Java ist wirklich ein Integer-Typ, so können Sie char Literale mit Operatoren wie + oder sogar %

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

Meinen Sie verwenden?

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

werfen Vielleicht meinen Sie 'C++'? – Dunes

+0

@Dunes ja ...;) –

+4

Ein "echter Programmierer" des 21. Jahrhunderts kann 'C++' in jeder Sprache schreiben. :-) –

6

Ich denke, Sie haben bereits Ihre Antwort in Frage selbst gegeben. Sie sollten die Ganzzahl auf char wie unten