我对字符串功能有点困惑 我有一个字符串数组 示例
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”。
答案 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]);