Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 别有用心的方法去包容?_Java_File Io_Boolean - Fatal编程技术网

Java 别有用心的方法去包容?

Java 别有用心的方法去包容?,java,file-io,boolean,Java,File Io,Boolean,我正在尝试查看我的文件是否包含多个字段。当我在扫描器中输入agentName和agent_id时,它会检查文件中输入的值。它只在if语句中的一个条件下工作。当我将第二条语句放在if中布尔值&&之后时,它不会返回任何内容 有人知道我能做什么吗?我也尝试过嵌套if,但都是相同的故事 任何帮助都将不胜感激 提前感谢 package p; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOExcepti

我正在尝试查看我的文件是否包含多个字段。当我在扫描器中输入agentName和agent_id时,它会检查文件中输入的值。它只在if语句中的一个条件下工作。当我将第二条语句放在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) {

            }

        }

    }
}


p包;
导入java.io.BufferedReader;
导入java.io.FileReader;
导入java.io.IOException;
导入java.util.ArrayList;
导入java.util.List;
导入java.util.Scanner;
公共类登录{
公共静态最终扫描仪输入=新扫描仪(System.in);
公共静态void main(字符串[]args){
System.out.println(“您想以俱乐部或代理身份登录吗?”);
System.out.println(“为俱乐部输入C,或为经纪人输入A,或按e退出!!!”;
char ch=input.next().charAt(0);
如果(ch='A'| ch='A'){
字符串agentName=“”;
字符串代理_id=“”;
弦线;
试一试{
FileReader fr=新的FileReader(“Agent.txt”);
BufferedReader br=新的BufferedReader(fr);
System.out.println(“请输入代理的名称\n”);
agentName=input.next();
System.out.println(“\n”);
System.out.println(“请输入代理id”);
agent_id=input.next();
System.out.println(“\n”);
List playerInfo=new ArrayList();
而((line=br.readLine())!=null){
if(line.toLowerCase().contains(agentName.toLowerCase())
&&line.toLowerCase()包含(代理\u id.toLowerCase()){
int numLines=2;//表示要显示的文件中的行数
playerInfo.add(行);
而((line=br.readLine())!=null&&numLines>=0){
playerInfo.add(行);
纽姆林--;
System.out.println(“找到代理…”\n);
System.out.println(“加载…”);
系统输出打印LN(playerInfo);
打破
}//内部while
}//如果
}//而
}捕获(IOE异常){
}
}
}
}

除非两个值在同一行上,否则它将返回false。您需要使用
|
而不是
&&
。请尝试以下操作:

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


谢谢你,伙计,这帮了大忙。你知道我可以用什么方法检查这两个值吗?我正在尝试进行临时登录。我猜您是如何进行的,但您需要在进行此操作时收集信息,然后根据一些数据库(例如,一些受保护的玩家文件及其密码或ID)检查这些值。