作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
给定一个 String s
和 char c
,我很好奇是否存在某种产生 List<Integer> list
的方法来自 s
(其中 list
内的元素表示 c
内 s
的索引)。
一个接近但不正确的方法是:
public static List<Integer> getIndexList(String s, char c) {
return s.chars()
.mapToObj(i -> (char) i)
.filter(ch -> ch == c)
.map(s::indexOf) // Will obviously return the first index every time.
.collect(Collectors.toList());
}
以下输入应产生以下输出:
getIndexList("Hello world!", 'l') -> [2, 3, 9]
最佳答案
可以通过 IntStream 完成
public static List<Integer> getIndexList(String s, char c) {
return IntStream.range(0, s.length())
.filter(index -> s.charAt(index) == c)
.boxed()
.collect(Collectors.toList());
}
关于Java 8/9 : Can a character in a String be mapped to its indices (using streams)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48592263/
我是一名优秀的程序员,十分优秀!