2014-01-10 77 views
1

我正在尋找一種方法來查找Java(Android)中部分匹配的索引位置。Android查找部分匹配的數組索引值

比方說,我的數組是:

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

我希望能夠像ips[].indexOf("192"),這回「1」,而不是「-1」。

這可能嗎?

+0

所以'IPS [0] .indexOf( 「192」)'返回-1你在嗎? – Obversity

+0

@Obversity我希望如此,看到「10.185.98.111」沒有192 – gtgaxiola

+0

你是否試圖獲取給定子字符串的索引,或者包含給定子字符串的字符串數組中的索引?也就是說,當你說你想讓它返回「1」時,是因爲數組中位置1的字符串包含「192」? – shoover

回答

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