从另一个过滤字符串数组

时间:2011-04-28 13:42:46

标签: java arrays string java-me

我对字符串功能有点困惑 我有一个字符串数组 示例

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

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

我想从Array2过滤字符串Array1 [0] 也就是说,在Array2的哪个索引中出现字符串“Hello”。

5 个答案:

答案 0 :(得分: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
    }

答案 1 :(得分:1)

您需要遍历Array2中的项目并进行子字符串比较:

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]);

答案 2 :(得分: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);

}
}

编辑:确保在给定的情况下可以发生Null-Pointer-Exceptions。也许添加

if(Array2[i] != null)

答案 3 :(得分: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);

答案 4 :(得分:-2)

您可以使用Apache Commons ArrayUtils类中的方法indexOf

<强>用法:

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]);