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());
我的运动是:
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());