如何获取String Array中特定字符串的所有索引?

时间:2016-02-15 06:26:19

标签: java arrays string indexing

如何获取String Array中特定字符串的所有索引?

对于Ex:

String [] alphabet ={“A”,”B”,”C”,”A”,”E”,”A”,”A” };

如果我正在搜索“A”的索引

所以我想要结果

int array [] ={0,3,5,6}

5 个答案:

答案 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));