如何从Java中的文本文件中跳过某些行?

2022-09-04 21:46:06

我目前正在学习Java,我遇到了这个问题,我想加载一个由大量行组成的文件(我正在逐行读取文件),我想做的是跳过某些行(伪代码)。

the line thats starts with (specific word such as "ABC")

我已尝试使用

if(line.startwith("abc"))

但这并没有奏效。我不确定我是否做错了,这就是为什么我在这里寻求帮助,在加载函数的一部分下面:

public String loadfile(.........){

//here goes the variables 

try {

        File data= new File(dataFile);
        if (data.exists()) {
            br = new BufferedReader(new FileReader(dataFile));
            while ((thisLine = br.readLine()) != null) {                        
                if (thisLine.length() > 0) {
                    tmpLine = thisLine.toString();
                    tmpLine2 = tmpLine.split(......);
                    [...]

答案 1

尝试

if (line.toUpperCase().startsWith(­"ABC")){
    //skip line
} else {
    //do something
}

这将通过使用函数将 转换为所有大写字符,并将检查字符串是否以 开头。linetoUpperCase()ABC

如果是这样,那么它将什么都不做(跳过线)并进入该部分。trueelse

您也可以使用Apache Commons提供的函数。它采用两个字符串参数。startsWithIgnoreCase

public static boolean startsWithIgnoreCase(String str,
                                           String prefix)

此函数返回布尔值。并检查字符串是否以指定的前缀开头。

如果 String 以前缀开头,则返回 true,不区分大小写。


答案 2

如果情况不重要,请尝试使用Apache CommonsStringUtils.startsWithIgnoreCase(String str, String prefix)

This function return boolean.

在这里查看javadoc

用法:

if (StringUtils.startsWithIgnoreCase(­line, "abc")){
    //skip line
} else {
    //do something
}

推荐