Javaのラムダ| 文字列内の文字列の配列の位置が最初に出現を探します

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);
}

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=477357&siteId=1