2

如果我对这个问题举个例子,很容易理解:

ArrayList<String> array;
String str = toString(array);

String toString(ArrayList<String> array) {
    StringBuilder sb = new StringBuilder();
    for( String string : array ) {
        sb.append(string);
    }
    return sb.toString();
}

问题是:如何在不显式转换为字符串str的情况下有效地获取 ' 长度?array

4

5 回答 5

12
int length = 0;
for(String str : array){
  length += str.length();
}
于 2012-10-31T10:52:03.893 回答
11
int length = 0;
for (String str : array) {
    length += str.length();
}
于 2012-10-31T10:52:01.833 回答
3

您可以遍历ArrayList<String>并添加每个元素的长度

于 2012-10-31T10:52:10.740 回答
1

添加递归变体只是为了好玩......

public static int length(List<String> list) {
    if (list.size() == 0) {
        return 0;
    }
    return list.get(0).length() + length(list.subList(1, list.size()));
}

也许不是最有效的方法。

于 2012-10-31T11:15:37.420 回答
0
int length = array.stream().mapToInt(String::length).sum();
于 2020-07-15T09:50:40.417 回答