繁体   English   中英

使用Java的ArrayList lastIndexOf()

[英]Using Java's ArrayList lastIndexOf()

为了简单起见,我有一个名为“items”的ArrayList(存储用户输入的字符串)和这段代码:

int index = items.lastIndexOf("i am");
if (index >= 0)
System.out.println("yay");

当我测试它时,如果我在开头键入“我是”它输出“yay”就像它应该的那样。 但是,如果我输入类似“是的我”的东西,它就不输出任何东西。 有没有办法我可以拥有它所以如果我输入“是的我是”或者我只限于刚开始的时候显示“yay”?

这是我设置ArrayList的方法:

List<String> items = Arrays.asList(user.split("\\s*,\\s*"));

谢谢。

在我看来,你是在逗号上分割输入字符串(也是一种尴尬的方式)。 既然yes I am不包含逗号,你的数组只有一个元素: ["yes I am"] 这意味着lastIndexOf("i am")将不匹配。 因此,你没有看到yay被打印出来。

现在,关于如何使这项工作。

  1. 输入yes, i am
  2. 正如评论中建议的那样,用user.indexof("i am")匹配原始输入字符串。

基本上,很难推荐一个解决方案,因为我不知道你的最终目标是什么。

问题是你的正则表达式没有拆分你指出的输入。 例如, i amyes i am将是列表中的单个元素。 这就是为什么在第一种情况下你会得到yay而在第二种情况下 - 而不是。

如果您将用户输入更改为yes, i am ,您将得到yay

ArrayList的Java Docs说它测试字符串是否相等,所以“是的,我是”不会起作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM