2011-04-28 48 views
2

IM點點過濾一個字符串數組迷茫相關字符串函數 我有字符串 例從另一個

String Array1[]=new String[10]; 
Array1[0]="Hello"; 

String Array2[]=new String[10]; 
Array2[0]="Hello my world"; 
Array2[1]="Hi buddy"; 

我要篩選的字符串數組1 [0]從ARRAY2 也就是說的一個陣列,在Array2的索引中出現字符串「Hello」。

回答

2
/** 
    * This method searches for key in the array of String , starts looking from fromIndexSpecified 
    * @param source 
    * @param key 
    * @param fromIndex 
    * @return 
    */ 
    private static int findIndexOfKey(String[] source, String key, int fromIndex) { 

     if (fromIndex > source.length) { 
      return -1;// invalid arg ..can also throw IlligleArgumentException 
     } 
     for (int index = fromIndex; index < source.length; index++) { 
      if (source[index].indexOf(key) > -1) { 
       return index;//found..! 
      } 
     } 
     return -1; //no match found 
    } 
+0

感謝它的工作原理的答覆 – shweta 2011-04-29 08:27:20

1

您將需要遍歷數組2項,做一個字符串比較:

private int findIndexOfSubstring(array, target) { 
    for (int i=0; i<array.size(); i++) { 
     if array[i].indexOf(target)>-1 return i; //element of Array2 contains target in it. 
    } 
    return -1; //no match found 
} 

//somewhere else 
String Array1[]=new String[10]; 
Array1[0]="Hello"; 

String Array2[]=new String[10]; 
Array2[0]="Hello my world"; 
Array2[1]="Hi buddy"; 

int answer = findIndexOfSubstring(Array2, Array1[0]); 
+0

感謝的reply.It工作 – shweta 2011-04-29 06:35:51

1

迭代第二陣列上,檢查每一個時間:

for(int i = 0; i < Array2.length; i++) { 
if(Array2[i].contains(Array1[0]) { 
//your logic here 
System.out.println("Found match at position " + i); 

} 
} 

編輯:可以肯定的是,在你的情況可能會發生空指針異常。也許添加

if(Array2[i] != null) 
1

一個String[]實際上是一個字符串數組。所以它可以容納多個字符串。 例如:

String[] stringArray = new String[2]; 
stringArray[0] = "My String 1"; 
stringArray[1] = "My String 2"; 

如果你想找出包含你需要做的像一個子一個String數組的第一個索引:

int findFirst(String subString, String[] stringArray) { 
     for (int i = 0; i < stringArray.length; i++) { 
      if (stringArray[i].contains(subString)) { 
       return i; 
      } 
     } 
     // indicates that no String in the array contained the subString 
     return -1; 
    } 

這裏是使用的方式方法:

int firstIndex = findFirst("String 2", stringArray); 
-2

您可以使用該方法從indexOfApache Commons ArrayUtils班。

用法:

String[] array1 = new String[10]; 
array1[0] = "Hello"; 

String[] array2 = new String[10]; 
array2[0] = "Hello my world"; 
array2[1] = "Hi buddy"; 

int index = ArrayUtils.indexOf(array2, array1[0]);