我的专长是:

创建方法长度,该方法长度将String变量列表作为参数,并返回一个ArrayList,其中ArrayString的长度与原始列表的顺序相同。

而我的代码:

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]

知道我在哪里犯错了吗?

最佳答案

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

09-30 18:07
查看更多