Ich habe dieses Programm, das einen Buchstaben oder ein Wort entsprechend dem angegebenen Wert ausgeben wird, der von einem Benutzer eingegeben wird. Wenn beispielsweise ein Benutzer den Buchstaben a eintippt, dann gibt der Benutzer erneut eine Nummer ein (z. B. 2), die Ausgabe wird c sein. In meinem Programm funktioniert es, wenn ein Benutzer einen einzelnen Buchstaben eingibt und der Buchstabe bis z. Wenn ein Benutzer jedoch ein Wort eingibt, das die Zahl für Buchstabe z überschreitet, wird keine Ausgabe ausgegeben. Beispiel: Benutzertypen in xyz und Typ 4, die übersprungen werden sollen, gibt es keine Ausgabe.Keine Ausgabe beim Überspringen von Buchstaben (Buchstabe z), wenn der Benutzer eine Zahl eingibt, um einen Buchstaben zu überspringen
public class FinalsActivity2 {
Scanner fc = new Scanner(System.in);
char characters[] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
File file = new File("C:\\Users\\TeonGo\\Desktop\\final2.txt");
PrintWriter pw = new PrintWriter(file);
public FinalsActivity2() throws IOException {
System.out.print("Enter text:");
String text = fc.nextLine();
System.out.print("Enter number:");
int num = Integer.parseInt(fc.nextLine());
try {
for (int f = 0; ; f++) {
for (int c = 0; c < 26; c++) {
if (text.charAt(f) == characters[c]) {
pw.print(characters[num + c]);
}
}
}
} catch (Exception e) {
}
pw.close();
}
public static void main(String[] args) throws IOException {
new FinalsActivity2();
}
}
Den ersten, was zu beheben: Entfernen Sie die Ausnahme-Schlucke, und stattdessen fixieren Sie Ihre for-Schleife nur eine Schleife über jeden Buchstabe in der Zeichenfolge. Als nächstes würde ich die Ausgabe einfach auf den Bildschirm anstatt in eine Datei drucken, und ich würde auch den ganzen Code in die "main" -Methode setzen, anstatt einen Haufen Felder ohne Grund zu haben und Code in den Konstruktor zu schreiben. All dies macht es einfacher, den Code zu lesen und zu sehen, was falsch ist.Ich würde auch vorschlagen, dass Ihre IDE den Code formatiert und ihn entsprechend einrückt. Nach all diesen Änderungen bearbeiten Sie Ihre Frage mit dem einfacheren Code. –
Ich denke, es macht was es soll und gibt 'lipps' aus. Warum sollte die Ausgabe "lippi" für "Hallo" sein? – Sachin
@ jay-gorio Eingabe: 'Hallo', Nummer: '4'. Dann: h + 4 = l, e + 4 = i, l + 4 = p, o + 4 = s. Wenn 'o' geparst würde, was würde' e' geparst werden? Der Code funktioniert einwandfrei. – liggiorgio