检查array-list是否包含某个字符串和整数

时间:2017-07-21 09:32:17

标签: java

假设我有这个数组列表

List<String> Speach2R = new ArrayList<>();
Speach2R.add(0, "Hello");
Speach2R.add(1, "yes");
Speach2R.add(2, "Hi");

我想说

if (messages.contains(any of Speach2R strings){
 said = true;
}

我也希望找到已建立消息的int,就像消息“Hi”存在一样 int MessageNumber = 2

3 个答案:

答案 0 :(得分:0)

您可以使用ArrayList#contains方法,因为您的列表包含字符串,ArrayList#indexOf包含索引。

看起来像这样

String message = "yes";
boolean found = false;
int index = -1;
if(speach2R.contains(message)){
   found = true;
   index = speach2R.indexOf(message);
}

答案 1 :(得分:0)

如果您的消息就像一个句子,则需要iterate覆盖List

的单词
Set<Integer> indexes = new TreeSet<>();
String message = "Hi, my name is john, and Hello";
for (String word : Speach2R){
    if (message.contains(word)){
        indexes.add(Speach2R.indexOf(word));
    }
}

它将遍历List的单词,并存储在Set所找到的单词的所有索引中

System.out.println("Your message contains :");
for (Integer i : indexes){
    System.out.println(Speach2R.get(i) + ", at index " + i);
}

然后你将在List

中打印找到的所有单词+他们的索引

答案 2 :(得分:0)

使用java 8 Stream API,您可以执行以下操作:

messages.stream().filter( Speach2R::contains ).findAny().isPresent()