如何获取String Array中特定字符串的所有索引?
对于Ex:
String [] alphabet ={“A”,”B”,”C”,”A”,”E”,”A”,”A” };
如果我正在搜索“A”的索引
所以我想要结果
int array [] ={0,3,5,6}
答案 0 :(得分:1)
尝试使用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);
}
使用更接近数组的列表,因为您不需要关心大小。 输出:
[0, 3, 5, 6]
答案 1 :(得分:1)
由于我们不知道String
我们正在搜索String[]
的次数,我更愿意使用List
来存储所有indices
}}。您可以尝试以下方式:
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]
答案 2 :(得分:1)
你可以按照建议循环它,当你遇到字符串时只需保存索引(如果你愿意,可以使用ArrayList,因为我们动态添加了indeces)。
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);
}
}
唯一需要注意的是,您不能将原始类型“int”用于ArrayList。
答案 3 :(得分:0)
Take和int array []。并使用for循环
找出您的特定字符串int[] array;
for(int i=0;i<alphabet.lenght;i++)
{
if(alphabet[i].equals("A"))
{
array[i]=i;
}
}
答案 4 :(得分:0)
试试这个。
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));