gpt4 book ai didi

java - 将用户输入的字符串与文本文件中的字符串进行比较

转载 作者:行者123 更新时间:2023-12-01 17:16:41 26 4
gpt4 key购买 nike

我正在尝试从文本文件进行简单的登录。我使用了不同的方法将文件中的文本读取到字符串行(BufferedReader 和 Scanner)。我能够将该行放入字符串中,但当我使用 if 语句(.equals()) 或即使我使用 .equalsIgnoreCase() 时,它不想比较两个字符串并进行匹配。当我打印要比较的两个字符串时,它们是相同的。但我的 if 语句似乎没有返回 true?这是我尝试的最后一次编码(我想也许如果我把它放入一个数组中它会比较真实,但仍然没有)。我查看并看到了与比较文本文件中的字符串类似的问题,但从未见过 if 语句返回 true 的问题

import java.io.*;
import java.text.*;
import java.lang.*;

public class tes
{

public static void main(String[] args)throws Exception
{
String logline = "JMX^1234";

ArrayList<String> lines = new ArrayList<String>();
FileReader fr = new FileReader("/home/jmx/Desktop/javap/Bank/jm.txt");
BufferedReader br = new BufferedReader(fr);

String rline = br.readLine();

while(rline != null)
{
lines.add(rline);
rline = br.readLine();
}

String[] users = new String[lines.size()];
lines.toArray(users);

for(int i = 0; i < users.length; i++)
{
if(logline.equals(users[i]))
{
System.out.println("Matched");
}
}

System.out.println("Login line: " + logline);
System.out.println("Text Line: " + users[0]);

br.close();
fr.close();
}

}

最佳答案

我尝试执行您的代码,一切都按预期工作。我收到“匹配”。也许这是某种编码问题。尝试比较长度,如果可以,尝试在文件中只保留一行并尝试以下代码:

String logline = "JMX^1234";

ArrayList<String> lines = new ArrayList<String>();
FileReader fr = new FileReader("/home/jmx/Desktop/javap/Bank/jm.txt");
BufferedReader br = new BufferedReader(fr);

String rline = br.readLine();

while(rline != null)
{
lines.add(rline);
rline = br.readLine();
}

String[] users = new String[lines.size()];
lines.toArray(users);

for (char ch : users[0].toCharArray()) {
System.out.print((int)ch);
}
System.out.println();

for (char ch : logline.toCharArray()) {
System.out.print((int)ch);
}
System.out.println();

for(int i = 0; i < users.length; i++)
{
if(logline.equals(users[i]))
{
System.out.println("Matched");
}
}

System.out.println("Login line: " + logline);
System.out.println("Text Line: " + users[0]);

br.close();
fr.close();

它应该返回相等的数字行,如下所示:

7477889449505152
7477889449505152
Matched
Login line: JMX^1234
Text Line: JMX^1234

另请尝试查看此答案:https://stackoverflow.com/a/4210732/6226118

关于java - 将用户输入的字符串与文本文件中的字符串进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61373564/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com