String的扩展函数class

Extension function of String class

我想创建一个 String 的扩展函数,它接受一个 String 和 returns 一个新的 String,字符作为第一个,但按升序排序命令。我怎样才能做到这一点?我是 Kotlin 的新手。

fun String.ascending() = String(toCharArray().sortedArray())

然后:

println("14q36w25e".ascending())  // output "123456eqw"

您可以结合内置扩展来快速完成:

fun String.sortedAlphabetically() = toCharArray().apply { sort() }

首先你得到底层字符数组,然后你对该数组应用排序并return它。如果需要,您可以自由施放结果 .toString()

我还有一个:

fun String.inAscending(): String = toMutableList().sortedBy { it }.joinToString("")

更好的是:

fun String.ascending(): String = toMutableList().sorted().joinToString("")

按升序打印字符串字符的扩展函数

方式一:

fun String.sortStringAlphabetically() = toCharArray().sortedArray())

方式二:

fun String.sortStringAlphabetically() = toCharArray().sortedArrayDescending().reversedArray()

方式三:

fun String.sortStringAlphabetically() = toCharArray().sorted().joinToString(""))

方式四:

fun String.sortStringAlphabetically() = toCharArray().sortedBy{ it }.joinToString(""))

那么你就可以通过下面的代码使用这个扩展功能了:

fun main(args: Array<String>) {
    print("41hjhfaf".sortStringAlphabetically())
}

输出:14affhhj

在我看来,以 kotlin 的方式进行,即

fun String.sortAscending() = toCharArray().sortedBy{ it }.joinToString("")