Java 如何获取字符串数组中特定字符串的所有索引?
如何获取字符串数组中特定字符串的所有索引 例如:Java 如何获取字符串数组中特定字符串的所有索引?,java,arrays,string,indexing,Java,Arrays,String,Indexing,如何获取字符串数组中特定字符串的所有索引 例如: String [] alphabet ={“A”,”B”,”C”,”A”,”E”,”A”,”A” }; 如果我正在搜索“A”的索引 所以我想要结果 int array [] ={0,3,5,6} 尝试使用for循环和list存储索引,如下所示: String [] alphabet ={"A","B","C","A","E","A","A" }; ArrayList<Integer> list = new ArrayList<
String [] alphabet ={“A”,”B”,”C”,”A”,”E”,”A”,”A” };
如果我正在搜索“A”的索引
所以我想要结果
int array [] ={0,3,5,6}
尝试使用for循环和list存储索引,如下所示:
String [] alphabet ={"A","B","C","A","E","A","A" };
ArrayList<Integer> list = new ArrayList<Integer>();
for (int i=0;i<alphabet.length;i++) {
if (alphabet[i].equals("A")) {
list.add(i);
}
}
System.out.println(list);
}
获取和int数组[]。并使用for循环找出您的特定字符串
int[] array;
for(int i=0;i<alphabet.lenght;i++)
{
if(alphabet[i].equals("A"))
{
array[i]=i;
}
}
由于我们不知道正在搜索的字符串在字符串[]中会出现多少次,因此我更喜欢使用列表来存储所有索引。您可以尝试以下方法:
String [] alphabet = {"A", "B", "C", "A", "E", "A", "A"};
List<Integer> indices = new ArrayList<Integer>();
String toSearch = "A";
for (int i = 0; i < alphabet.length; i++) {
if (alphabet[i].equals(toSearch)) {
indices.add(i);
}
}
System.out.println(indices); //prints [0, 3, 5, 6]
您可以按照建议循环使用它,当您遇到字符串时,只需保存索引,您可以使用ArrayList进行此操作,如果您愿意的话,因为我们正在动态添加索引
String [] alphabet ={"A","B","C","A","E","A","A" };
ArrayList<Integer> list = new ArrayList<>();
for(int i=0 : i<alphabet.length; i++){
if(alphabet[i].equals("A"){ //substitute "A" for the string you are looking for
list.add(i);
}
}
唯一需要注意的是,不能对ArrayList使用基本类型int。试试这个
String [] alphabet ={"A","B","C","A","E","A","A" };
String search = "A";
int[] array = IntStream.range(0, alphabet.length)
.filter(i -> alphabet[i].equals(search))
.toArray();
System.out.println(Arrays.toString(array));
一个循环和equals?Arrays.asListalphabet.indexOf“A,但它给了我数组中第一次出现的A的索引。@Jim GarrisonHe想要的是int数组中的索引,而不是字符串。如果List List=new ArrayList上出现编译器错误,您将在第一个数组中得到异常[i]=i;更不用说,即使没有异常,这也无法工作。
String [] alphabet ={"A","B","C","A","E","A","A" };
String search = "A";
int[] array = IntStream.range(0, alphabet.length)
.filter(i -> alphabet[i].equals(search))
.toArray();
System.out.println(Arrays.toString(array));