Java 别有用心的方法去包容?
我正在尝试查看我的文件是否包含多个字段。当我在扫描器中输入agentName和agent_id时,它会检查文件中输入的值。它只在if语句中的一个条件下工作。当我将第二条语句放在if中布尔值&&之后时,它不会返回任何内容 有人知道我能做什么吗?我也尝试过嵌套if,但都是相同的故事 任何帮助都将不胜感激 提前感谢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
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)检查这些值。