user5155835:
私は、ループを使用せずに、文字列の配列に部分文字列を検索します。私が使用しています:
import java.util.Arrays;
public class MyClass {
public static void main(String args[]) {
String[] files = new String[]{"Audit_20190204_061439.csv","anotherFile"};
String substring= ".csv";
if(!Arrays.stream(files).anyMatch(substring::contains)) {
System.out.println("Not found:" + substring);
}
}
}
私はいつも見つかりません取得しています。アプローチと間違っては何ですか?
彼らは次のとおりでした:
あなたはかどうかをチェックされているString
「.CSV」があなたの要素のいずれかが含まれていませんStream
あなたが何を望むかの反対です。
そのはず:
if (!Arrays.stream(files).anyMatch(s -> s.contains(substring))) {
System.out.println("Not found:" + substring);
}
PSとしては、あなたが使用することができ、コメントnoneMatch
の代わりに、anyMatch
条件を否定する必要が保存されますこれは、:
if (Arrays.stream(files).noneMatch(s -> s.contains(substring))) {
System.out.println("Not found:" + substring);
}
「.CSV」ストリングのみの終わりで検索する必要がある場合String
(接尾辞として扱わすなわち)、あなたが使用する必要がありますendsWith
代わりにcontains
。