Сравнение идентификатора пользователя с идентификатором пользователя из текстового файла - PullRequest
0 голосов
/ 23 ноября 2018

Я хочу добавить информацию о пользователе и отклонить, если идентификатор пользователя уже существует.В настоящее время мой код отображает "ID уже существует!"но все равно добавляет информацию о пользователе.

это мой код:

String id = EditManagerID.getText();
String password = EditManagerPassword.getText();
String name = EditManagerName.getText();
String contact = EditManagerContact.getText(); 
String address = EditManagerAddress.getText();
String role = EditManagerRole.getText();   


try
{
    String reader;

    BufferedReader br = new BufferedReader(new FileReader("ManagerDetails.txt"));
    while ((reader = br.readLine())!=null)
    {
        String[] split = reader.split(",");
        if (id.equals(split[0]))
        {
             JOptionPane.showMessageDialog(null, "ID already exists!", "Warning", JOptionPane.WARNING_MESSAGE);
        }
    }
}
catch(Exception e)
{

}


if(id.isEmpty() || password.isEmpty() || name.isEmpty() || contact.isEmpty() || address.isEmpty() || role.isEmpty())
{
    JOptionPane.showMessageDialog(null, "Please Fill In Everything!", "Error", JOptionPane.ERROR_MESSAGE);
}        

else
{

ClassUser u = new ClassUser (id, password, name, address, contact, role);

File f = new File("ManagerDetails.txt");


        try(PrintWriter pw = new PrintWriter(new FileWriter(f, true))){
            pw.println(u.toString()); //print into txtfile
            JOptionPane.showMessageDialog(this, "Added Successfully!");

        } catch(Exception e){
            JOptionPane.showMessageDialog(null, "Invalid Input!", "Error", JOptionPane.ERROR_MESSAGE);
        }

Я пытался добавить 'if-else', но не уверен, что поставить как утверждение.

1 Ответ

0 голосов
/ 23 ноября 2018

В своем коде вы говорите, если идентификатор уже существует, покажите сообщение "ID уже существует!"а затем вы продолжаете добавлять информацию пользователей в любом случае.В вашем операторе if id уже существует, задайте для логической переменной found значение true, а затем сделайте еще один оператор if и проверьте, найдено ли значение true или false.

 boolean found = false;

 // ...

    if (id.equals(split[0]))
        {
             JOptionPane.showMessageDialog(null, "ID already exists!", "Warning", 
             JOptionPane.WARNING_MESSAGE);
             found = true;
             //stop the while
             break;
        }

// ...

//check if id already exists or not. if not then add users info
if(!found){
      //put your adding users info code here
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...