Meine Aufgabe ist es, ein Programm zu erstellen, das den Benutzer auffordert, ein Jahr, einen Vornamen und einen Nachnamen einzugeben. Es nimmt dann die letzten 2 Zahlen des Jahres, den ganzen letzten Namen und den ersten Buchstaben des Vornamens und formatiert sie in eine E-Mail wie folgt: [email protected] Diese E-Mail wird in eine Textdatei geschrieben, die nicht gedruckt werden muss. Am Ende wird gefragt, ob der Benutzer den Vorgang wiederholen möchte, um eine neue E-Mail zu erstellen.Eine zusätzliche Variable machen, Programm funktioniert nicht
Dies ist mein Programm, und es ist noch nicht vollständig abgeschlossen. Ich habe es funktioniert, aber wenn ich das Teil zu implementieren, die es wiederholt, wenn gewünscht, wird die E-Mail nicht mehr in der Datei vorgenommen:
public static void main(String[] args) throws IOException {
PrintWriter pw = new PrintWriter (new FileWriter("7D_mail.txt"));
boolean done = false;
while (done==false){
Scanner kb = new Scanner (System.in);
System.out.print ("Enter the year (e.g 2016) > ");
String year = kb.nextLine();
System.out.print ("Enter your first name > ");
String fname = kb.nextLine();
System.out.print ("Enter your last name > ");
String lname = kb.nextLine();
pw.write (year.substring(2)+lname+fname.charAt(0)+"@mymail.co.uk");
System.out.print ("*** Email created - another one? (Y/N)");
pw.close();
}
}
Dieses Programm oben funktioniert, aber wenn ich dann eine Zeile nach dem hinzufügen Letzte (String antwort = kb.nextLine();), um eine neue Zeichenfolge für die Antwort zu machen, funktioniert es nicht mehr.
public static void main(String[] args) throws IOException {
PrintWriter pw = new PrintWriter (new FileWriter("7D_mail.txt"));
boolean done = false;
while (done==false){
Scanner kb = new Scanner (System.in);
System.out.print ("Enter the year (e.g 2016) > ");
String year = kb.nextLine();
System.out.print ("Enter your first name > ");
String fname = kb.nextLine();
System.out.print ("Enter your last name > ");
String lname = kb.nextLine();
pw.write (year.substring(2)+lname+fname.charAt(0)+"@mymail.co.uk");
System.out.print ("*** Email created - another one? (Y/N)");
String answer = kb.nextLine();
pw.close();
}
}
Eine Idee, warum das nicht funktioniert? Danke
Es scheint, als ob Sie die Datei nach dem allerersten Durchlauf der Schleife "schließen". –
Ändern Sie 'done = true;' zu 'done = answer.equals (" N ");'. Sie können auch '! Done' anstelle von' done == false' verwenden. Stellen Sie sicher, dass Sie den 'PrintWriter 'nicht schließen, wenn' done' 'false' ist. – Titus
Funktioniert immer noch nicht Ich habe Angst @Titus – JoeMaynard