我不知道该使用什么更好,而我需要返回布尔值,使用:包含或等于来搜索匹配项。 这是一些示例。
List<String> names = new ArrayList<>();
names.add(“John”);
names.add(“Laura”);
names.add(“Nick”);
等于:
boolean check;
for(String name : names)
{
if(“Laura”.equals(name))
{
check = true;
}
}
包含:
boolean check;
check = names.contains(“Laura”);
提前响应
答案 0 :(得分:4)
String equals()方法根据字符串的内容比较两个给定的字符串。如果任何字符不匹配,则返回false。如果所有字符都匹配,则返回true。对于您的方案,您将浏览列表中的每个字符串,将其与所需的字符串进行比较,如果它们相同,则返回true。
如果此List包含指定的元素,则 ArrayList.contains(Object)方法将返回true。 java.util.ArrayList
中 contains 方法的实际实现如下:
/**
* Returns true iff element is in this ArrayList.
*
* @param e the element whose inclusion in the List is being tested
* @return true if the list contains e
*/
public boolean contains(Object e)
{
return indexOf(e) != -1;
}
ArrayList的indexOf()
方法返回此列表中指定元素的首次出现的索引;如果此列表不包含该元素,则返回-1。
无论您决定采用哪种方法,都可以接受。特别是在您的情况下,由于您要检查的是硬编码值,因此我认为看起来更整洁使用包含方法,但这不是一个正确的答案。
答案 1 :(得分:0)
在 Java 中,String equals() 方法根据字符串的数据/内容比较两个给定的字符串。如果两个字符串的所有内容都相同,则返回 true。如果所有字符都不匹配,则返回 false。
<块引用> <块引用> <块引用>contains 方法 -> 如果子字符串存在于主字符串中,则返回 true
例如:
String a = "Jarvis123";
String b = "Jarvis";
System.out.println(a.contains(b)); // will return true
System.out.println(a.equals(b)); // will return false