【问题标题】:filter strings to display three letters from the ArrayList in java过滤字符串以显示 java 中 ArrayList 中的三个字母
【发布时间】:2013-06-19 09:59:25
【问题描述】:

我正在实现方法 filter,它返回列表中长度大于 3 的所有字符串的子列表。在添加三个示例数据后,我在主函数中调用了 filter() - 你好 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));
    }
}

【问题讨论】:

    标签: string arraylist filter substring string-length


    【解决方案1】:

    您没有实例化类 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));
    

    【讨论】:

      【解决方案2】:

      您从filter 返回list 而不使用返回值,或者实际上传入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(); 行更改为list1 = filter();,这样就可以捕获过滤的结果。

      【讨论】:

        猜你喜欢
        • 2018-09-18
        • 2018-05-05
        • 1970-01-01
        • 2016-01-05
        • 2015-01-12
        • 1970-01-01
        • 2022-12-11
        • 2020-03-08
        • 2013-04-13
        相关资源
        最近更新 更多