在Java中,如何从字符串数组中查找字符串,以及为什么下面的示例不能按预期工作
如何从字符串数组中查找字符串,在下面的示例中,除了搜索第一个字符串外,我总是搜索失败,但没有搜索第二个或第三个字符串,我甚至尝试了[indexof!=1条件而不是等于],但结果仍然相同,为什么?-请告知。谢谢
我的例子是:
String[] TEXT_ARRAY = {"first","second","third" };
String parameter ="second";
for (String string : TEXT_ARRAY) {
System.out.println("****** [containsScript ? ] IS EQUALS ? " + parameter.toString().toUpperCase().equals(string.toString().toUpperCase()));
}
# 1 楼答案
您的脚本按预期工作,正在打印:
[containsScript?]平等吗?假的
[containsScript?]平等吗?对
[containsScript?]平等吗?假的
但是你有很多冗余代码,你的情况可能会被改写为:
另外,你到底需要实现什么?如果你想测试一个给定的字符串是否存在于一组字符串中,那么我建议使用一个集合,而不是数组,并在每次需要检查时对其进行迭代
# 2 楼答案
也许对你有帮助。我编写了这个方法来在字符串数组中搜索用户名
# 3 楼答案
改变制度。出去
系统。出来println(“**[containsScript?]平等吗?“+(parameter.toString().toUpperCase().equals(string.toString().toUpperCase()))
# 4 楼答案
你的例子对我很有用。结果将是
注意:我认为这里不需要toString()方法
# 5 楼答案
字符串实际上是不可变的。如果您有两个具有相同内容的字符串,那么由于String interning,它们将是相同的对象
所以你应该能够做到:
parameter.equals(string)
对于您的搜索,如果这样做更容易,您可以:
Arrays.asList(TEXT_ARRAY).contains(parameter)
这和你的循环完全一样