如何获取包含某个单词的行数?

时间:2018-11-05 22:39:24

标签: java android android-studio

所以我有此代码生成的表,并且我一直在尝试使此代码正常工作,基本上我想知道该单词有多少行,以便以后可以使用该数量的元素,此代码就像不工作也许你们可以看到错误? 代码:

public int UntilArraySearch (String filtro){
    int tope=0;
    for(int i = 0;i<mTableLayout.getChildCount();i++){
        if(data[i].productName.contains(filtro) || data[i].productCode.contains(filtro))
            tope++;
    }
    return tope;
}

此错误弹出:

 Caused by: java.lang.ArrayIndexOutOfBoundsException: length=52; index=52

每当我运行该函数时都会收到此错误

2 个答案:

答案 0 :(得分:2)

仅当mTableLayout.getChildCount()<= data.length且似乎并非如此时,您的循环才有效,因为如果是这种情况,则{{1 }}不会超过i的最大索引。

既然您要遍历data,为什么不这样写循环:

data

检查这是否是预期的结果?

答案 1 :(得分:2)

如果要搜索data,那么最好遍历data数组的长度。无论您的视图(mTableLayout)是否正确地反映了模型(data),此操作都可以通过仅考虑模型来更好地将自身与视图隔离,这是通常遵循的良好做法。

public int UntilArraySearch (String filtro){
    int tope=0;
    for(int i = 0;i<data.length;i++){
        if(data[i].productName.contains(filtro) || data[i].productCode.contains(filtro))
            tope++;
    }
    return tope;
}
相关问题