So als Anregung...
Man bekommt die Zuordnung Buchstabe, Leerzeichen, Ziffer usw in der [code]Character[/code]-Klasse geschenkt. Ich habe immer ein schlechtes Gefuehl, in Java mit den numerischen Werten eines ASCII-Zeichens herumzurechnen, daher der Ansatz mit dem Alphabet-Array. Der Code rotiert nur nur Buchstaben und beruecksichtigt Gross- und Kleinschreibung, Ziffern und Leerzeichen werden unveraendert uebernommen, unbekannte sonstige Zeichen werden ignoriert.
Du kannst den Code in der Eclipse Console laufen lassen; um das Programm zu beenden muss es das EOD-Signal bekommen. Unter UNIX ist das Steuerung+D, wie das in Windows ist, weiss ich leider nicht.
[code=Java]
package rot13;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
static final String alphabet = "abcdefghijklmnopqrstuvwxyz";
static final int LENGTH = alphabet.length();
public static void main(String[] args) throws IOException {
final BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
for(;;) {
final String input = br.readLine();
if(input == null) {
break;
}
final StringBuilder b = new StringBuilder(input.length());
for(final Character ch : input.toCharArray()) {
if(Character.isLetter(ch)) {
final int index = alphabet.indexOf(Character.toLowerCase(ch.charValue()));
if(index == -1) {
continue;
}
int i = index + 13;
if( i >= LENGTH) {
i -= LENGTH;
}
final char c2 = alphabet.charAt(i);
b.append(Character.isUpperCase(ch) ? Character.toUpperCase(c2) : c2);
} else if(Character.isWhitespace(ch) || Character.isDigit(ch)) {
b.append(ch);
}
}
System.out.println(b.toString());
}
}
}
[/code]