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出力が得られないのですか?変数コードの値を表示させようとしています。入力したものだけが表示される場合は、contain.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 に答える