我有一个String数组,我需要找到最短字符串的长度。例如,对于此字符串数组["abc", "ab", "a"]
,我应该得到值1
。
我编写的方法获取字符串数组并返回int值
val minLength = fun(strs: Array<String>): Int {
var minLength = strs[0].length
for (index in 1..strs.size - 1) {
val elemLen = strs[index].length
if (minLength > elemLen) {
minLength = elemLen
}
}
return minLength
}
另一种方法是使用reduce
方法
val minLengthReduce = strs.reduce ({
str1, str2 ->
if (str1.length < str2.length) str1 else str2
}).length
是否可以直接从reduce()
方法获取int值而不是字符串值?
我发现了question关于reduce
和fold
方法的问题。
我应该使用fold方法来减少吗?
答案 0 :(得分:8)
答案 1 :(得分:4)
另一种方法是将map
字符串添加到length
,然后选择最小的数字:
val strs = arrayOf("abc", "ab", "ab")
val min = strs.map(String::length).min()