java - 为什么我的 if 条件不起作用(if (n>2))?

标签 java filereader

//this code is to compare two files and delet stop list word from file algorithm    
FileReader reader = new FileReader("C:\\Users\\Sara\\Desktop\\IRP\\Information Retrieval\\Algorithm.txt");
BufferedReader bufferedReader = new BufferedReader(reader);
FileReader readerStopList = new FileReader("C:/Users/Sara/Desktop/IRP/stopwords2.txt");
BufferedReader bufferedReaderStopList = new BufferedReader(readerStopList);
String word, stopword, newWord = "";
while ((word = bufferedReader.readLine()) != null) {
    for (int k = 0; k < word.split(" ").length; k++) {
        int count = 0;
        newWord = word.split(" ")[k];
        int n = newWord.length();
        if (n > 2) { //this statment to skip words of length 2
            while ((stopword = bufferedReaderStopList.readLine()) != null) {

                for (int j = 0; j < stopword.split(" ").length; j++) {

                    if (newWord.equalsIgnoreCase(stopword.split(" ")[j])) {
                        count++;

                    }
                }
            }
            if (count == 0) {
                System.out.println(newWord);

            }
        }

    }

最佳答案

假设 n > 2 为真一次,然后您从 bufferedReaderStopList 中读取所有行,直到到达 EOF。这意味着每当 n > 2 再次为 true 时,将永远不会进入 bufferedReaderStopList 上的内部循环,因为 readLine() 从现在开始始终返回 null。

对于初学者来说,您的代码需要更好地结构化,至少首先将 bufferedReaderStopList 的内容添加到数组中。还要避免对单词字符串进行多次拆分。执行一次并使用结果数组。

关于java - 为什么我的 if 条件不起作用(if (n>2))?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49140206/

相关文章:

javascript - 在 JavaScript 中获取动态文件输入的 FileReader 结果

javascript - Chrome 文件阅读器

java - Groovy Script 非法使用非虚函数调用

java - 使用 HttpURLConnection 发送 UTF-8 字符串

java - 多线程环境中的基准测试

java - 似乎无法从 Java 中的 SHA256 摘要生成十六进制编码的字符串

javascript - 使用 readAsDataURL 检索原始图像时的图像方向

javascript - 如何使用此代码在单片眼镜电子书阅读器中制作下一个和上一个按钮?

java - 使用 Eclipse 编辑器出现 FileNotFoundException

java - Tomcat 6 vs 7 - lib vs shared/lib - 只有 jar ?