Java中的StringBuilder类中有一个indexOf功能是查找字母串中的字符位置,那如果存在多个符合条件的字符,那返回值是第一次遇到符合条件的字符吗,如果我想遇到后面的符合条件的字符要怎么办呢?
2条回答 默认 最新
threenewbee 2023-05-09 16:24关注用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)); // 输出所有符合条件的位置下标解决 无用评论 打赏 举报 编辑记录