Java ArrayList 字符串长度打印

Java ArrayList strings lengths printing

我的运动是:

Create the method lengths that gets a list of String variables as a parameter and returns an ArrayList that contains the lengths of the Strings in the same order as the original list.

我的代码:

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]

知道我哪里做错了吗?

您需要更正这个循环体并在此处添加数字

list.add(item.length());

括号之间。

在您的 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;
}

试试这个。

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

}
}

编辑:在长度方法中,正在创建列表,但您没有向其中添加任何项目。现在在代码中 for (String item : strings) { list.add(item.length()); } 这会将每个字符串的长度添加到新的 ArrayList 中,您将 return 到打印的主要方法中。

谢谢

最初您打印循环中每个字符串的长度

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