[英]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
被打印出来。
现在,关于如何使这项工作。
yes, i am
user.indexof("i am")
匹配原始输入字符串。 基本上,很难推荐一个解决方案,因为我不知道你的最终目标是什么。
问题是你的正则表达式没有拆分你指出的输入。 例如, i am
, yes i am
将是列表中的单个元素。 这就是为什么在第一种情况下你会得到yay
而在第二种情况下 - 而不是。
如果您将用户输入更改为yes, i am
,您将得到yay
。
ArrayList的Java Docs说它测试字符串是否相等,所以“是的,我是”不会起作用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.