我的练习是:
创建方法长度,将String变量列表作为参数获取,并返回一个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 :(得分: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;
}
答案 1 :(得分: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中,您将返回到main方法进行打印。
由于
答案 2 :(得分:2)
你需要纠正这个循环体并在这里添加数字
list.add(item.length());
括号内的。
答案 3 :(得分: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());