查找包含空(非空定义)字符串的下一个位置的索引

时间:2015-04-13 23:21:42

标签: java search indexing arraylist

在一个较大的项目中,我从文本文件创建了一个字符串的ArrayList,其中文本文件的每一行在ArrayList中获得自己的索引,因此这些行按顺序存储在列表中。

我需要以下方法来返回包含空行的ArrayList中的下一个索引。由于从文件读入行,因此在读入行时不能将行定义为null ...或者至少我不能以这种方式使用它。

这是我到目前为止的代码:

public static int nextBlankIndex(int num){
    //returns the index in the file input arraylist of the next blank line after line number "num"
    //used to find spaces between questions
    for(int i=0; i<in.size();i++)
    {
        String line = in.get(i);
        if(line.equals(""));
            return (num-1)+i;
    }
    return -1;
}

任何建议或编辑都会一如既往地受到高度赞赏。提前谢谢。

2 个答案:

答案 0 :(得分:1)

您似乎是通过在num-1语句中添加return来调整结果。但是您并未在使用i的所有其他位置添加它,因此搜索始终从第一行开始。

最简单的调整是在i = num开始循环。

public static int nextBlankIndex(int num) {
    for (int i = num; i < in.size(); i++) {
        String line = in.get(i);
        if (line.equals("")) {
            return i;
        }
    }
    return -1;
}

if声明之后你也有一个分散的分号。

答案 1 :(得分:1)

你想从num开始,所以从它开始,只返回匹配的索引

for(int i=num; i<in.size();i++)
{
    String line = in.get(i);
    if(line.equals(""))
        return i;
}