我有以下方法,它采用整数&串。另外,我必须将参数与从文本文件中读取的内容进行比较。我收到错误'不兼容的类型'。我必须做一些解析吗?如果是这样,怎么样?据我所知,readLine()不需要解析。我的想法是,我必须扫描文本文件以获得有效的staffId&转到下一行也检查相关密码。
public boolean staffExists (int staffid, String staffpwd) throws IOException
{
boolean valid = false;
String filePath = new File("").getAbsolutePath();
BufferedReader reader = new BufferedReader(new FileReader(filePath + "/src/DBTextFiles/Administrator.txt"));
try
{
String line = null;
while ((line = reader.readLine()) != null)
{
if (!(line.startsWith("*")))
{
//System.out.println(line);
//http://stackoverflow.com/questions/19874621/how-to-compare-lines-read-from-a-text-file-with-integers-passed-in
if (line.equals(String.valueOf(staffid)) && (reader.readLine() == staffpwd))
{
System.out.println ("Yes");
System.out.println ("Welcome " + reader.readLine() + "!");
valid = true;
}
}
}
}
catch (IOException ex)
{
ex.printStackTrace();
}
finally
{
reader.close();
}
return valid;
}
答案 0 :(得分:3)
line
的类型为String
,staffid
的类型为int
。在以下行中,您无法将int
与String
进行比较:
if (line == staffid)
您需要将它们转换为相同的数据类型才能进行比较。
使用String.valueOf方法将staffid
int值转换为String,并使用equals方法将其与line进行比较。
if (line.equals(String.valueOf(staffid))
答案 1 :(得分:1)
if (line == staffid)
line
字符串staffId
是int
。
答案 2 :(得分:0)
对于字符串使用equals
方法而不是==
。
==
仅比较参考文献。