Скрытый метод содержит? - PullRequest
0 голосов
/ 09 января 2020

Я пытаюсь проверить, содержит ли мой файл более 1 поля. Когда я ввожу agentName и agent_id в сканер, он проверяет файл на наличие введенных значений. Он работает только с одним условием в операторе if. Когда я помещаю второе выражение в if после логического выражения &&, оно ничего не возвращает.

Кто-нибудь понял, что я могу сделать? Я попытался с вложенным если также, но это была та же история.

Любая помощь будет принята с благодарностью Заранее спасибо !!!!

package p;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Login {

    public static final Scanner input = new Scanner(System.in);

    public static void main(String[] args) {

        System.out.println("Do you want to Login as a Club or an Agent? ");
        System.out.println("Enter C for club or A for Agent or press e to exit !!! ");

        char ch = input.next().charAt(0);

        if (ch == 'A' || ch == 'a') {

            String agentName = "";
            String agent_id = "";
            String line;

            try {

                FileReader fr = new FileReader("Agent.txt");
                BufferedReader br = new BufferedReader(fr);

                System.out.println("Please enter the name of the Agent \n");
                agentName = input.next();
                System.out.println("\n");
                System.out.println("Please enter the Agents id ");
                agent_id = input.next();
                System.out.println("\n");

                List<String> playerInfo = new ArrayList<String>();

                while ((line = br.readLine()) != null) {

                    if (line.toLowerCase().contains(agentName.toLowerCase())
                            && line.toLowerCase().contains(agent_id.toLowerCase())) {

                        int numLines = 2;//represents the number of lines in the file I want to show
                        playerInfo.add(line);

                        while ((line = br.readLine()) != null && numLines >= 0) {
                            playerInfo.add(line);
                            numLines--;
                            System.out.println("Agent found...... \n");
                            System.out.println("Loading.....");
                            System.out.println(playerInfo);
                            break;

                        } // inner while

                    } // if

                } // while

            } catch (IOException e) {

            }

        }

    }
}


1 Ответ

1 голос
/ 09 января 2020

Если оба значения не находятся в одной строке, возвращается false. Вам нужно использовать || вместо &&. Попробуйте следующее:

            if (line.toLowerCase().contains(agentName.toLowerCase())
                  || line.toLowerCase().contains(agent_id.toLowerCase())) {
                     // rest of code here

...