数组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并将其存储在稍后returnArraylist中。

在以下代码中:

 ArrayList lengthList = new ArrayList(); for (int nums: lengthList) { System.out.println(nums.length()); } 

您正在创建一个ArrayList lengthList ,它是空的并尝试迭代它。

我想你想迭代这样的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 list ),但您没有迭代它。 你必须迭代这个列表。
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()); }