djm*_*.im 0 arrays string kotlin
我有一个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
}
Run Code Online (Sandbox Code Playgroud)
另一种方法是使用reduce方法
val minLengthReduce = strs.reduce ({
str1, str2 ->
if (str1.length < str2.length) str1 else str2
}).length
Run Code Online (Sandbox Code Playgroud)
是否可以直接从reduce()方法而不是字符串值获取int 值?
我发现这个问题,大约reduce和fold方法.
我应该使用折叠方法代替减少?
使用minBy
val a = arrayOf("a", "abc", "b")
val s = a.minBy(String::length)?.length ?: 0
Run Code Online (Sandbox Code Playgroud)
s将是1.
另一种方法是将map其串起来length,然后选择最小的数字:
val strs = arrayOf("abc", "ab", "ab")
val min = strs.map(String::length).min()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
102 次 |
| 最近记录: |