过滤字符串以显示java中ArrayList的三个字母

时间:2013-06-22 09:44:55

标签: string arraylist filter substring string-length

我正在实现方法过滤器,它返回列表中长度大于3的所有字符串的子列表。在添加三个样本数据后,我在main函数中调用了filter() - Hello Sam Washington。输出应该是Hel Sam Was。建议?

import java.util.ArrayList;

public class practice {
    private ArrayList<String> list = new ArrayList<String>();

    public ArrayList<String> filter() {
        for(int i=0; i<list.size(); i++) {
            if(list.get(i).length() > 3)
                list.set(i, list.get(i).substring(0, 3));
        }
        return list;
    }

    public static void main(String[] args) {
        ArrayList<String> list1 = new ArrayList<String>();

        list1.add("Hello");
        list1.add("Sam");
        list1.add("Washington");

        filter();

        for(int i=0; i<list1.size(); i++)
            System.out.println(list1.get(i));
    }
}

2 个答案:

答案 0 :(得分:1)

您从[{1}}返回list而未使用返回的值,或实际传入filter。您可以将项目添加到list1,或者像这样重做您的方法:

list

然后将行public ArrayList<String> filter(ArrayList<String> toFilter) { for(int i=0; i<toFilter.size(); i++) { if(toFilter.get(i).length() > 3) toFilter.set(i, toFilter.get(i).substring(0, 3)); } return toFilter; } 更改为filter();,以便捕获过滤结果。

答案 1 :(得分:0)

您没有实例化类Practice。您应该这样做并填写其list列表,然后调用过滤器。我只是在这里粘贴你的主要方法。

Practice practice = new Practice();
practice.list.add("Hello");
practice.list.add("Sam");
practice.list.add("Washington");

practice.filter();

for(int i=0; i<practice.list.size(); i++)
    System.out.println(practice.list.get(i));