2013-06-22 45 views
0

我正在實現方法過濾器,它返回列表中所有長度大於3的字符串的子列表。我在添加主函數後調用了filter()三個樣本數據 - 你好薩姆華盛頓。輸出應該是Hel Sam Was。建議?過濾字符串以顯示java中ArrayList的三個字母

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)); 
    } 
} 

回答

0

你沒有實例化類的練習。你應該這樣做,並填寫它的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)); 
1

你返回從filterlist不使用返回的值,或實際傳遞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();,讓你捕捉過濾的結果。

相關問題