Asf*_*sfK 2 java lambda java-8
我想建立一个方法int getIndexOfFirstFound(String text, String[] words)。
该方法接收文本和单词数组,并应返回找到的第一个单词的索引。
我知道用简单的迭代来做,就像这样:
for (String word : words) {
if (text.indexOf(word) != -1) return text.indexOf(word);
}
return -1;
Run Code Online (Sandbox Code Playgroud)
但是对于我的培训,如果可能的话,我会看看如何使用 lambda 来做到这一点......我知道我可以检查字符串是否包含数组中的一个单词:Arrays.stream(words).parallel().anyMatch(text::contains)但我不知道如何返回索引..
很高兴知道如何用现代方式找到第一个找到的单词索引,谢谢!
PS示例:
Text= "你好我是你的短信,你好吗?"
Words= [“你的”,“是”]
结果应该是“你的”(10)的索引
你的 for 循环最简单的等价物是
int getIndexOfFirstFound(String text, String[] words) {
return Arrays.stream(words)
.mapToInt(text::indexOf)
.filter(i -> i >= 0)
.findFirst()
.orElse(-1);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
707 次 |
| 最近记录: |