我想重新排序字符串“hearty”按字母顺序排列:“aehrty”
我试过了:
val str = "hearty"
val arr = str.toCharArray()
println(arr.sort())
这会引发错误。我也用.split("")
尝试了.sort()
方法。这也会引发错误。研究这一点无处可去。
您需要使用sorted()
并在joinToString
之后将数组转回String:
val str = "hearty"
val arr = str.toCharArray()
println(arr.sorted().joinToString("")) // aehrty
注意:sort()
将改变它所调用的数组,sorted()
将返回一个新的排序数组,保持原始状态不变。
所以你的问题是CharArray.sort()
返回Unit
(因为它会对数组进行就地排序)。相反,您可以使用返回sorted()
的List<Char>
,或者您可以执行以下操作:
str.toCharArray().apply { sort() }
或者如果你只想要回来的话:
fun String.alphabetized() = String(toCharArray().apply { sort() })
然后你可以这样做:
println("hearty".alphabetized())