Java ArrayList字符串长度打印

时间:2017-04-26 17:02:08

标签: java string arraylist string-length

我的练习是:

  

创建方法长度,将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]

知道我哪里犯了错误吗?

4 个答案:

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