2017-04-26 83 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());