2017-04-26 111 views
3

我鍛鍊; Tibial是:Java的ArrayList的字符串長度打印

創建方法長度是獲取字符串變量作爲參數的列表,並返回一個包含在同一順序的字符串的長度與原始的ArrayList名單。

和我的代碼:

import java.util.ArrayList; 

public class Test { 

public static ArrayList<Integer> lengths(ArrayList<String> strings) { 
     ArrayList<Integer> list = new ArrayList<Integer>(); 

     for (String item : strings) { 
      System.out.print(item.length()); 
     } 
     return list; 
    } 

public static void main(String[] args) { 

ArrayList<String> list = new ArrayList<String>(); 

     list.add("Dog"); 
     list.add("Elephant"); 
     list.add("Aligator"); 
     list.add("Parrot"); 

     ArrayList<Integer> stringLenghts = lengths(list); 
     System.out.println(stringLenghts); 

    } 
} 

,並將該軟件的輸出

3386 []

代替

[3, 3,8,6]

任何想法,我犯了一個錯誤?

+0

我不知道是誰投下來這個,但是海事組織,這是一個很好的問題。僅僅因爲他是初學者並不是一個壞問題。 – mmaceachran

+0

@mmaceachran我不知道誰提出了嚴重的研究問題,對於任何人都沒有幫助,而不是OP(這不是Stack Overflow的原因)。 – Tom

+0

@Tom對不起,我還沒有進入StackOverflow。任何有用的建議如何使用它會對我很好。 – Mar

回答

3

在您的lengths()方法中,您只需打印長度值。 但您不添加長度爲ArrayList,即你的stringLenghts列表是空的(所以印刷爲[]空數組),那麼改變你的代碼如下所示:

public static ArrayList<Integer> lengths(ArrayList<String> strings) { 
     ArrayList<Integer> list = new ArrayList<Integer>(); 
     for (String item : strings) { 
      list.add(item.length());//add length to list 
     } 
     return list; 
} 
+0

這麼簡單:)當然工作很好,非常感謝你! – Mar

2

您需要糾正這個身體循環,並添加此號碼

list.add(item.length()); 

括號內。

3

試試這個。

import java.util.ArrayList; 

public class Test { 

public static ArrayList<Integer> lengths(ArrayList<String> strings) { 
    ArrayList<Integer> list = new ArrayList<Integer>(); 

    for (String item : strings) { 
     list.add(item.length()); 
    } 
    return list; 
} 

public static void main(String[] args) { 

ArrayList<String> list = new ArrayList<String>(); 

    list.add("Dog"); 
    list.add("Elephant"); 
    list.add("Aligator"); 
    list.add("Parrot"); 

    ArrayList<Integer> stringLenghts = lengths(list); 
    System.out.println(stringLenghts); 

} 
} 

編輯:在長度的方法,該列表正在創建,但您不添加任何項目。現在在(String item:strings){list.add(item.length()); }這將每個字符串的長度添加到新的ArrayList,您將返回到打印的主要方法。

由於

+2

解釋你所做的改變! –

+0

在長度方法中,正在創建列表,但不添加任何項目。現在在(String item:strings)的代碼庫 中list.add(item.length()); } 這將每個字符串的長度添加到新的ArrayList,您將返回到打印的主要方法。 –

+0

感謝您的幫助。工作很好! – Mar

2

最初要從循環打印每個串的長度

for(String item : strings) { 
    System.out.print(item.length()); 
} 

其中輸出:3386(因爲印刷的無新線)

這個空的ArrayList後是因爲你正在返回空的arrayList對象而被打印的。

System.out.println(stringLenghts); 

其中輸出:[]

解決方案:
必須更換
System.out.print(item.length());

list.add(item.length());