找到存储在arraylist中的字符的索引值

ath*_*esh 2 java indexof

我有一个字符串arraylist.如果其值等于特定字符,则需要获取所有元素的索引值.

例如,如果元素的值=",则需要获取元素的索引值".

使用indexOf()&lastIndexOf()我只能找到第一次和最后一次出现的索引值.

ArrayList<String> als_data = new ArrayList<String>();

als_data[0] = "a"
als_data[1] = "b"
als_data[2] = "a"
als_data[3] = "c"
als_data[4] = "d"
als_data[5] = "a"
Run Code Online (Sandbox Code Playgroud)

现在我需要找到指数 "a"

我的输出应该是

0
2
5
Run Code Online (Sandbox Code Playgroud)

请帮我解决这个问题.

ada*_*shr 9

String string = "a.b.cc.dddd.ef";

int index = 0;
while((index = string.indexOf('.', index)) != -1) {
    index = string.indexOf('.', index);
    System.out.println(index);
    index++;
}
Run Code Online (Sandbox Code Playgroud)

版画

1
3
6
11
Run Code Online (Sandbox Code Playgroud)

如果你想在列表上做同样的事情,

List<String> list = new ArrayList<String>();

list.add("aa.bb.cc.dd");
list.add("aa.bb");
list.add("aa.bbcc.dd");

for (String str : list) {
    printIndexes(str, '.');
    System.out.println();
}

private void printIndexes(String string, char ch) {
    int index = 0;
    while((index = string.indexOf(ch, index)) != -1) {
        index = string.indexOf(ch, index);
        System.out.println(index);
        index++;
    }
}
Run Code Online (Sandbox Code Playgroud)

将打印

2
5
8

2

2
7
Run Code Online (Sandbox Code Playgroud)

编辑:作者澄清他的问题后更新

List<String> list = new ArrayList<String>();

list.add("abcd");
list.add("pqrs");
list.add("abcd");
list.add("xyz");
list.add("lmn");

List<Integer> indices = new ArrayList<Integer>();

for (int i = 0; i < list.size(); i++) {
    if("abcd".equals(list.get(i))) {
        indices.add(i);
    }
}

System.out.println(indices);
Run Code Online (Sandbox Code Playgroud)