9

这是我的 ArrayList 的内容contain

HPDH-1,001, Check-out date: 7/7/7

JTI-1,001, Check-out date: 7/7/7

我的代码:

for (int i = 0; i < contain.size(); i++) {
    if (contain.get(i).contains(code)) {
        System.out.println(contain.get(i));
    }
}

问题是我的变量代码是字符串“JTI-1” 为什么它不给我 JTI-1 输出?我试图让它显示变量代码的值。我想删除 contains.get(i) 如果它只给我我输入的那个。

4

4 回答 4

13

我认为基本上代码是正确的。我会检查您的输入并确保它们确实是您的想法。

我可能会将您的循环重写为:

for (String s : contain) {
   if (s.contains(code)) {
      // found it
   }
}

使用对象迭代器(上面假设你有一个ArrayList<String>)。也许重命名contain。目前还不是很清楚这是什么。

于 2012-10-19T08:53:18.170 回答
10

假设字符串列表,代码是正确的。I have not modified any of your source code just to give you idea that it works fine.

    List<String> contain = new ArrayList<String>();
    contain.add("HPDH-1,001, Check-out date: 7/7/7");
    contain.add("JTI-1,001, Check-out date: 7/7/7");
    String code = "JTI-1 ";
    for (int i = 0; i < contain.size(); i++) {
        if (contain.get(i).contains(code.trim())) {<---Use trim it is possible that code may have extra space
            System.out.println(contain.get(i));
        }
    }
于 2012-10-19T08:58:47.573 回答
3

您的代码是正确的,但我也建议您使用迭代器:

import java.util.ArrayList;
import java.util.Arrays;


public class Main {

    public static void main(String[] args) throws Exception {

        ArrayList<String> contain = new ArrayList<String>(Arrays.asList("HPDH-1,001, Check-out date: 7/7/7",
                "JTI-1,001, Check-out date: 7/7/7"));

        String code = "JTI";

        // your loop
        for (int i = 0; i < contain.size(); i++) {
            if (contain.get(i).contains(code)) {
                System.out.println(contain.get(i));
            }
        }

        // my suggestion
        for (String s : contain) {
               if (s.contains(code)) {
                  System.out.println(s);
               }
        }
    }
}

输出:

JTI-1,001,退房日期:7/7/7

JTI-1,001,退房日期:7/7/7

如果此输出不是您想要的,请添加更多信息。

于 2012-10-19T09:00:16.787 回答
0
System.out.println("Find name");
        String str = s.nextLine();
        List<Integer> result = new ArrayList<Integer>();
        for (int i = 0; i < surname.size(); i++) {
            if(surname.get(i).equals(str)){
                result.add(i);
            }
        }
        for (Integer integer : result) {
            System.out.println(integer);
        }
于 2019-02-26T11:18:45.307 回答