0
我目前正在開發一個解析CSV的程序,然後根據CSV檢查輸入的電子郵件地址,如果有效,則顯示其人員信息。我遇到的問題是else語句,表示您的電子郵件無效。我現在的代碼;在while循環中破壞else語句
import java.io.*;
import java.util.*;
public class CSVReader123{
public static void main(String[] arg) throws Exception {
BufferedReader CSVFile = new BufferedReader(new FileReader("testa453.csv"));
String dataRow = CSVFile.readLine();
//String email = "[email protected]";
//String password = "ocrabc";
Scanner input = new Scanner(System.in);
System.out.println("Please input an email adress");
String email = input.nextLine();
System.out.println("Please input you password");
String password = input.nextLine();
while (dataRow != null){
String[] dataArray = dataRow.split(",");
if ((dataArray[0].equals(email)) && (dataArray[1].equals(password))) {
System.out.println("Your email is valid");
System.out.println("Do you want to display you personel data?(Y or N)");
String personeldata = input.nextLine();
if ((personeldata.equals("yes")) || (personeldata.equals("Yes")) || (personeldata.equals("Y"))){
System.out.println("You email is " +dataArray[0]+".");
System.out.println("You password is " +dataArray[1]+".");
System.out.println("You first name is " +dataArray[2]+".");
System.out.println("You second name is " +dataArray[3]+".");
System.out.println("You street name is " +dataArray[4]+".");
System.out.println("You city name is " +dataArray[5]+".");
System.out.println("You postcode is " +dataArray[6]+".");
}
else if ((personeldata.equals("no")) || (personeldata.equals("No")) || (personeldata.equals("N"))) {
System.out.println("Shutting down.");
break;
}
}
else {
System.out.println("BROKEN");
break;
}
System.out.println();
dataRow = CSVFile.readLine();
}
CSVFile.close();
System.out.println();
}
}
我遇到的問題是,如果我嘗試輸入有效或無效的電子郵件,它總是會打印出中斷並停止。雖然如果我刪除了所述的if語句,程序運行完好,其餘部分仍然正常工作。難道我不知何故宣佈它在錯誤的地方,因爲第一個else語句完美嗎?任何幫助,將不勝感激。
這不起作用,它只是打破它比它以前更糟。如果您使用它們而不是掃描儀輸入,那麼當前正在評論的兩個字符串,您將看到我的意思是它只是連續打印BROKEN太屏幕。 – Cooke1007
看到我的編輯 - 在繼續之前,您必須閱讀下一行。 –
此外,您不需要爲每一行打印此「BROKEN」。你可以刪除它。您也可以刪除整個其他部分(其中包含「BROKEN」)。 –