1

我如何能够使用和数组列表访问特定的字符串?

List<String> myList = new ArrayList<String>();
myList.Add("Hi");
myList.Add("Pizza");
myList.Add("Can");

因此,如果我这样做了,然后我会这样做:

for (String s : myList)
    if (s == "Hi")
        system.out.println("Hello"):

它不会打印“你好”。

我需要改变大小并查看字符串是否存在,但我似乎无法让它工作,有什么想法吗?

4

8 回答 8

1

您应该使用 .equals() 方法,它会检查字符串的值,而 == checke 对象引用。

于 2012-12-02T14:09:00.610 回答
1

方法名称add(object)不是`Add()。这是另一个答案

        List<String> myList = new ArrayList<String>();
        myList.add("Hi");
        myList.add("Pizza");
        myList.add("Can");
        // method 1
        if( myList.contains("Hi")) {
            System.out.println("Found");
        }
        // method 2
        for( String word : myList ) {
            if( word.equals("Hi")) {
                System.out.println("found");
                // break the loop to avoid continues iteration
                break;
            }
        }
于 2012-12-02T14:15:07.237 回答
1

- Objects在 Java 中使用equals(), 进行比较,并且在 Java 中String一个 Object,所以它遵循相同的规则。

- ==将用于比较原语或检查两个或多个对象引用变量是否指向堆上的同一个对象。

-所以你应该使用equals()equalsIgnoreCase()(如果大小写无关紧要)来比较字符串对象。

for (String s : myList){
    if (s.equals("Hi"))
        system.out.println("Hello");
}
于 2012-12-02T14:03:39.263 回答
1
 if (s == "Hi")

将其更改为

 if (s.equals("Hi"))

equals()在比较对象时使用总是比使用更好==(字符串文字除外)

==比较引用相等性。equals()比较对象内容的相等性。

于 2012-12-02T14:03:40.060 回答
1

你应该写下面的代码

for (String s : myList)
    if (s.equals("Hi"))
        system.out.println("Hello"):
于 2012-12-02T14:04:31.337 回答
1

s.equalsIgnoreCase("Hi")如果您不关心大写/小写,则可以使用

于 2012-12-02T14:05:46.583 回答
0

为什么不使用List.contains()

if (myList.contains("Hi"))
    system.out.println("Hello");
于 2012-12-02T14:16:45.557 回答
0

为什么不使用 HashMap?您可以通过 HashMap 的 get 方法访问该值。您将避免在 ArrayList 上进行循环

于 2012-12-02T15:39:09.257 回答