Java中的StringBuilder类中有一个indexOf功能是查找字母串中的字符位置,那如果存在多个符合条件的字符,那返回值是第一次遇到符合条件的字符吗,如果我想遇到后面的符合条件的字符要怎么办呢?
用substring切割,然后再对后面的调用indexof
StringBuilder sb = new StringBuilder("Hello World, World!");
char ch = 'o';
int[] indexes = new int[sb.length()];
int count = 0;
int index = sb.indexOf(String.valueOf(ch)); // 获取第一个符合条件的位置
while (index != -1) {
indexes[count++] = index;
index = sb.indexOf(String.valueOf(ch), index + 1); // 从下一个位置开始继续查找
}
int[] finalIndexes = Arrays.copyOfRange(indexes, 0, count); // 将有效的下标复制到新数组中
System.out.println(Arrays.toString(finalIndexes)); // 输出所有符合条件的位置下标
语法:str.indexOf(strg,startIndex);
StringBuilder str1 = new StringBuilder("13223");
System.out.println(str1.indexOf("3",2)); // 结果:4