首页 文章

用于java中2个不同文本文件的文本的通配符过滤器

提问于
浏览
0

我有2个文本文件 . myfile.txt和Person.txt . myfile.txt包含一个短文并且Person.txt包含人名列表 . 现在我正在用netbeans做这个程序 . GUI有2个textarea和一个按钮 . 当我点击该按钮时,myfile.txt的内容将显示在1st textarea中,如果在myfile.txt中找到Person.txt中的任何名称,则第二个textarea应该显示Person . 到目前为止,我可以在1 textarea中显示myfile.txt但无法进行比较 . 这是我现在的代码:private void jButton1ActionPerformed(java.awt.event.ActionEvent evt){
int a = 0;

try{
        FileInputStream fstream = new FileInputStream("myfile.txt");
        // use DataInputStream to read binary NOT text
        // DataInputStream in = new DataInputStream(fstream);
        BufferedReader br = new BufferedReader( new InputStreamReader(fstream));
        String line="";

        FileInputStream fstreamCP = new FileInputStream("Person.txt");
        // use DataInputStream to read binary NOT text
        // DataInputStream inCP = new DataInputStream(fstreamCP);
        BufferedReader brCP = new BufferedReader( new InputStreamReader(fstreamCP));
        String lineCP = brCP.readLine();

        while((line = br.readLine()) != null){
            System.out.println();
            jTextArea1.append(line);

            if (jTextArea1.getText()==(lineCP)){
                jTextArea2.append("Person");
            }
        }

        in.close();
        }catch(IOException e){
            System.out.println("Error while reading file:" + e.getMessage());
        }

}

上面的代码没有错误 . 可以读取myfile.txt的内容并将其发送到1st textarea,但无法识别myfile.txt和Person.txt中存在的相同单词 . 我想如果我使用通配符文本过滤器,那么我将能够做到这一点?任何想法或示例代码高度赞赏 . 谢谢 .

3 回答

  • 0

    不要将字符串与 == 进行比较:

    jTextArea1.getText()==(lineCP)
    

    这将检查两个String变量是否引用完全相同的String对象,这不是您感兴趣的内容 .

    而是使用 .equals(...).equalsIgnoreCase(...) 方法 . 这些方法检查两个字符串是否具有相同顺序的相同字符,区分大小写(第一种方法)或不敏感,这是您要检查的内容 .

  • 0

    == 被称为 relational operators in Java . 它将检查两个操作数的值是否相等,如果是,则条件变为真 .

    使用 equals()equalsIgnoreCase() 为您的情况....

    if (lineCP.equals(jTextArea1.getText())){
         jTextArea2.append("Person");
    }
    
    or
    
    if (lineCP.equalsIgnoreCase(jTextArea1.getText())){
         jTextArea2.append("Person");
    }
    
  • 0

    你必须对字符串使用equals(),你不能将它们与=进行比较

    if (jTextArea1.getText().equals(lineCP)){
        jTextArea2.append("Person");
    }
    

相关问题