Сравнение идентификатора пользователя с идентификатором пользователя из текстового файла

Я хочу добавить информацию о пользователе и отклонить его, если идентификатор пользователя уже существует. В настоящее время в моем коде отображается «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», но не знал, что использовать в качестве утверждения.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
43
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

 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
}

Я пробовал это, но он просто добавляет пользователя бесконечно.

anonymous23 23.11.2018 18:19

большое спасибо зак! я смотрел свой код в течение последнего часа хахаха

anonymous23 23.11.2018 18:41

Другие вопросы по теме