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