我正在尝试用java解决数组中的复杂问题。
以字符串开头。
String text = "I am the best Programmmer in the world the best";
String [] arraytext = text.split("");
接下来是迭代数组并检查记录
for (String array1 : arraytext) {
System.out.println(array1);
}
这有效,我有我的数组
我现在遇到的问题是检查数组中的记录并获取数组的索引。
我的意思是
for (String array1 : arraytext) {
if (array1.equalsIgnoreCase("best")){
// get the index of this array
}
}
我需要得到该数组的索引。它非常复杂,因为我实际上需要最好的第二个实例的索引。
并从for循环中获取此索引的结果。
非常感谢任何帮助
答案 0 :(得分:3)
首先要正确拆分字符串,您可能希望拆分" "
或使用正则表达式来检查更广泛的空格列表。
然后你需要做的就是创建一个方法来进行搜索:
int findIndex(String str, int start, String[] array) {
for (int i=start;i<array.length;i++) {
if (array[i].equals(str)) {
return i;
}
}
return -1;
}
然后获得第一个:
index = findIndex("test", 0, array);
对于你做的第二次:
index = findIndex("test", index+1, array);
如果未找到任何内容,那么index将为-1。
答案 1 :(得分:0)
如何更改
中的for循环for(int i = 0; i < arraytext.length ; i++){
if(arrayText[i].equalsIgnoreCase("best"))
System.out.println(i);
}
答案 2 :(得分:0)
Java的Foreach语法只是围绕for
循环的语法糖。如果要查找最后一个匹配元素,最简单的方法是自己手动编写for
循环,但向后迭代。这样的事情。
for (int i = arraytext.length - 1; i >= 0; i--)
{
if (arraytext[i].equalsIgnoreCase("best"))
{
// i is the array index you're looking for, do something with it
break; // or return if this is a method
}
}
答案 3 :(得分:0)
您可以使用ArrayUtils:
import org.apache.commons.lang.ArrayUtils;
int index = ArrayUtils.lastIndexOf(arraytext, "best");