我想将字符串“ hearty”重新排序为字母顺序:“ aehrty”
我尝试过:
val str = "hearty"
val arr = str.toCharArray()
println(arr.sort())
这将引发错误。我还尝试了.split("")
的{{1}}方法。这也会引发错误。研究此事无济于事。
答案 0 :(得分:4)
您需要使用sorted()
,然后再使用joinToString
将数组变回字符串:
val str = "hearty"
val arr = str.toCharArray()
println(arr.sorted().joinToString("")) // aehrty
注意::sort()
将对其调用的数组进行突变,sorted()
将返回一个新的排序数组,而原始数组保持不变。
答案 1 :(得分:2)
因此,您的问题是CharArray.sort()
返回Unit
(因为它是对数组进行的就地排序)。相反,您可以使用sorted()
返回List<Char>
,也可以执行以下操作:
str.toCharArray().apply { sort() }
或者,如果您只想返回字符串:
fun String.alphabetized() = String(toCharArray().apply { sort() })
那么您可以做:
println("hearty".alphabetized())