2011-03-21 78 views
1

我正在逐行读取文本文件并将其转换为字符串。从包含多行的字符串获取最后一行

我想弄清楚如何检查文件的最后一行是否是一个特定的词("FILTER")

我试过使用String类的endsWith(String)方法,但它在出现时没有检测到这个单词。

+0

你应该显示你正在使用的代码......在我看来,你可能错过了导致你的问题的代码中的东西。 – Romain 2011-03-21 12:53:37

+0

我同意罗曼。你还可以显示一个示例文件吗? – Zlatko 2011-03-21 12:55:13

+3

[Java:快速读取文本文件的最后一行?]的可能重复?(http://stackoverflow.com/questions/686231/java-quickly-read-the-last-line-of-a-text-file ) – dogbane 2011-03-21 12:55:24

回答

0
public static boolean compareInFile(String inputWord) {  

     String word = "";  

     File file = new File("Deepak.txt");  
     try {  
      Scanner input = new Scanner(file);  
      while (input.hasNext()) {  
       word = input.next();  
       if (inputWord.equals(word)) {  
        return true;  
       }  
      }  

     } catch (Exception error) {  
     }  
     return false;  
    }  
1

.trim()endsWith(..)前检查您的字符串

1

比较幼稚的解决方案,但这应该工作(如果该文件确实与所需的字符串结尾。如果没有,你可以简单地使用.contains(..)):

String[] lines = fileContents.split("\n"); 
String lastLine = lines[lines.length - 1]; 
if("FILTER".equals(lastLine)){ 
// Do Stuff 
} 

不知道为什么.endsWith()不起作用。最后是否有额外的换行符? (在这种情况下,上述不起作用)。病例总是匹配吗?

0

随着

myString.endsWith("FILTER") 

最后一行的最后一个字符进行检查。也许方法

myString.contains("FILTER") 

是您正确的方法吗?如果您只想检查最后一个...例如20个字符,请尝试对字符串进行子串处理,然后检查equals方法。

相关问题