我的任務是創建一個程序,要求用戶輸入一年,一個名字和一個姓氏。然後,它採用年份的最後兩個數字,整個姓氏和名字的第一個字母,並將它們格式化爲如下所示的電子郵件:[email protected]。它將這封電子郵件放在一個文本文件中,不需要打印。最後,它詢問用戶是否希望再次重複該過程以製作新的電子郵件。做一個額外的變量,程序不起作用
這是我的程序,它還不完整。我有工作,但是當我去實現它重複它,如果想要的部分,電子郵件不再是文件中提出:
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();
}
}
這個方案上面的作品,但如果我那麼以後添加一行最後一個(字符串答案= kb.nextLine();),爲答案製作一個新的字符串,它不再起作用。
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();
}
}
任何想法,爲什麼這是行不通的?謝謝
看起來好像你在循環的第一次運行後'關閉'文件。 –
將'done = true;'改爲'done = answer.equals(「N」);'。另外,您可以使用'!done'而不是'done == false'。如果'done'爲'false',確保你不關閉'PrintWriter'。 – Titus
仍然不起作用恐怕@Titus – JoeMaynard