teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2015/06/16 13:15

投稿

argius
argius

スコア9396

answer CHANGED
@@ -29,4 +29,35 @@
29
29
  }
30
30
  return false;
31
31
  }
32
- ```
32
+ ```
33
+
34
+ ---
35
+
36
+ (追記)
37
+
38
+
39
+ ループを使わない方法について。
40
+
41
+
42
+ Java8なら、
43
+ ```lang-java
44
+ if (list.stream().anyMatch(x -> x.contains(keyword))) {
45
+
46
+ }
47
+ ```
48
+
49
+ Java8がダメなら、Apache Commons Collectionsの[CollectionUtils.exists](https://commons.apache.org/proper/commons-collections/apidocs/org/apache/commons/collections4/CollectionUtils.html#filter%28java.lang.Iterable,%20org.apache.commons.collections4.Predicate%29)を使うと同じようなことができます。
50
+
51
+
52
+
53
+ それもダメで、どうしても一発で判定したいなら、
54
+ ```lang-java
55
+ if (String.valueOf(list).contains(keyword) {
56
+ // do something
57
+ }
58
+ ```
59
+ という方法があります。`list`を文字列にしてしまうのです。
60
+ ただし、`list`と`keyword`の文字列にスペースとカンマを含まないという前提が無いとダメです。
61
+ それに、これは**まったくお薦めしない方法**です。
62
+
63
+ どうしても使うなら、リスクを踏まえたうえで、限定的に使うようにしてください。