ASF:
私はこの方法を構築したいですint getIndexOfFirstFound(String text, String[] words)
。
この方法は、単語のテキスト及びアレイを受信し、最初に見つかったワードのインデックスを返すべきです。
私はこのように、単純な反復処理でそれを行うために知っています:
for (String word : words) {
if (text.indexOf(word) != -1) return text.indexOf(word);
}
return -1;
しかし、私の訓練のために私は...私は、文字列は、配列から単語が含まれている場合は、私がチェックすることができます知っていることの可能な場合は、ラムダでそれを行う方法を見て:Arrays.stream(words).parallel().anyMatch(text::contains)
私は、インデックスを返す方法がわかりません。..
、近代的な方法で感謝を最初に見つかったワードのインデックスを見つける方法を知って喜んでいるでしょう!
PS例:
Text
=「私はあなたのテキストですこんにちは、お元気ですか?」Words
= [ "あなた"、 "あります"]
その結果は、「あなた」(10)の指数でなければなりません
ernest_k:
ループのためのあなたの最も簡単な同等です
int getIndexOfFirstFound(String text, String[] words) {
return Arrays.stream(words)
.mapToInt(text::indexOf)
.filter(i -> i >= 0)
.findFirst()
.orElse(-1);
}