Android查找部分匹配的数组索引值

时间:2014-01-10 19:21:38

标签: java android arrays arraylist indexof

我正在寻找一种在Java(Android)中找到部分匹配的索引位置的方法。

假设我的数组是:

String ips[] = {"10.185.98.111", "192.168.0.13", "Some random IPV6 address"};  

我希望能够像ips[].indexOf("192")那样返回“1”而不是“-1”。

这可能吗?

2 个答案:

答案 0 :(得分:3)

执行自己的功能,例如:

public int getElementThatContains(String[] ips, String key) {
    for (int i = 0; i < ips.length; i++) {
        if (ips[i].indexOf(key) >= 0) {
            return i;
        }
    }
    return -1;
}

观察list的排序将确定您将获得哪个IP。 如果你有两个元素192,那么接近开头就会被选中。

你也可以改变:

if (ips[i].indexOf(key) >= 0) {
    return i;
}

对于不同类型的比赛,例如:

ips[i].contains(key)
ips[i].startsWith(key)
ips[i].endsWith(key)

答案 1 :(得分:1)

public void specialIndexOF(List<String> ips){
        int index=0;
            for(String s:ips){
        if(s.contains(search)){
        return index;
        }
        index++;
            }
    return -1;
        }