扩展功能将字符串转换为ASCII

时间:2018-07-07 20:26:26

标签: kotlin

我想创建和扩展String函数,该函数接受一个String并返回一个新的String,该字符串包含所传递字符串的每个字符的ascii代码。我怎样才能做到这一点?我是Kotlin的新手。

3 个答案:

答案 0 :(得分:3)

与@mTak相同的解决方案,但依赖于更多标准库函数,即mapjoinToString

fun String.toAscii() = this.map { it.toInt() }.joinToString()

答案 1 :(得分:0)

以逗号分隔:

fun String.toAscii(): String {
    var s = ""
    for (char in this) {
        s = s + char.toInt() + ","
    }

    return s.removeSuffix(",")
}

如果您喜欢lambdas:

fun String.toAscii(): String {
    var s = ""
    this.forEach { s = s + it.toInt() + "," }
    return s.removeSuffix(",")
}


println("abc".toAscii())

那样使用它

答案 2 :(得分:0)

字符串扩展函数,它接受一个String并返回一个新的String,该字符串包含所传递字符串的每个字符的ASCII码。

fun String.stringToAscii(): String {
    var asciiStr = ""
    val iterator = iterator()
    for (i in iterator) {
        asciiStr += (i.toInt().toString() + ",")
    }
    return asciiStr.removeSuffix(",")
}

然后您可以通过以下代码使用此扩展功能:

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

输出:52,49,104,106,104,102,97,102