我想创建和扩展String函数,该函数接受一个String并返回一个新的String,该字符串包含所传递字符串的每个字符的ascii代码。我怎样才能做到这一点?我是Kotlin的新手。
答案 0 :(得分:3)
与@mTak相同的解决方案,但依赖于更多标准库函数,即map
和joinToString
:
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