java - 如何将从文本文件中读取的行与传入的整数进行比较

标签 java

我有以下方法,它接受一个整数和字符串。此外,我必须将参数与从文本文件中读取的参数进行比较。我收到错误“类型不兼容”。我需要做一些解析吗?如果是这样,怎么办?据我了解,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;
}

最佳答案

line 的类型为 String ,而 staffid 的类型为 int 。您无法在以下行中尝试将 intString 进行比较:

if (line == staffid)

您需要将它们转换为相同的数据类型才能进行比较。

使用 String.valueOf 将您的 staffid int 值转换为字符串方法并使用 equals 方法与行进行比较。

if (line.equals(String.valueOf(staffid))

关于java - 如何将从文本文件中读取的行与传入的整数进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19874621/

相关文章:

Java 小程序被阻止

java - 标记的中断被忽略或被视为正常中断

java - 玩2.3.x : Non-blocking image upload to Amazon S3

java - 安装 "cannot execute not a directory"时出现 Hadoop 错误

java - 与 Java 并行创建对象

java - Jarsigner: "This jar contains entries whose certificate chain is not validated."

java - 什么颜色混合算法用于使颜色变暗?

java - 模式仅查找组中正则表达式的一个字符

java - 不同输入数组中的百分比

java - joda time periodFormatter 不打印年份