数组Java中每个元素的长度
这是我正在尝试使用的。 方法.length对我尝试的任何东西都不起作用,所以我甚至不确定从哪里开始。
import java.util.ArrayList; public class LengthsOfStrings { public static ArrayList lengths(ArrayList list) { ArrayList lengthList = new ArrayList(); for (int nums: lengthList) { System.out.println(nums.length()); } return lengthList; } public static void main(String[] args) { ArrayList list = new ArrayList(); list.add("Ciao"); list.add("Moi"); list.add("Benvenuto!"); list.add("badger badger badger badger"); ArrayList lengths = lengths(list); System.out.println("The lengths of the Strings: " + lengths); } }
您正在尝试迭代单个int
而不是字符串数组。 更改
for (int nums: lengthList) { System.out.println(nums.length()); }
至
for (String str: list) { // loop through the list of strings lengthList.add(str.length()); // store the individual length of each string }
为了循环遍历字符串列表,收集每个字符串的length
并将其存储在稍后return
的Arraylist
中。
在以下代码中:
ArrayList lengthList = new ArrayList (); for (int nums: lengthList) { System.out.println(nums.length()); }
您正在创建一个ArrayList
,它是空的并尝试迭代它。
我想你想迭代这样的list
:
for (String s: list) { lengthList.add(s.length()); System.out.println(s.length()); }
并在每次迭代lengthList
每个String
length()
添加到lengthList
。
使用以下代码:
public static List lengths(List list) { List lengthList = new ArrayList (); for (String nums: list) { int len = nums.length(); lengthList.add(len); System.out.println(len); } return lengthList; }
在您的代码中,您需要在2个位置更新:
1)在长度方法中,您传递列表( ArrayList
),但您没有迭代它。 你必须迭代这个列表。
2)在for循环中,您将变量设为int,而列表的类型为String。 所以更新你的代码如下:
public static ArrayList lengths(ArrayList list) { for (String nums: list) { System.out.println(nums.length()); } return lengthList; }
对于Java 8用户
public static void main(final String[] args) { List strings = Arrays.asList("Hi", "Hello", "how ru?"); List lengthList = lengths(strings); lengthList.forEach(System.out::println); } public static List lengths(List list) { return list.stream().mapToInt(s -> s.length()).boxed() .collect(Collectors.toList()); //OR return list.stream().mapToInt(String::length).boxed() .collect(Collectors.toList()); }