gpt4 book ai didi

java - 将带有表情符号的字符串映射到 Array

转载 作者:行者123 更新时间:2023-12-02 13:04:40 25 4
gpt4 key购买 nike

我想将我的字符串转换为数组或字符串列表或字符,例如:Array<String>Array<Char> .
例子:

val myText = "Ab😟+🤹2👨🏻#✅'👨ü👨🏿{" // Parse and print to Log
应该:
[ "A", "b", "😟", "+", "🤹", "2", "👨🏻", "#", "✅", "'", "👨", "ü", "👨🏿", "{" ] // Array contains Strings or Chars
由于 Android 上的 Emojis,Java/Kotlin 方法不起作用:
myText.toList() // ❌ Fails because of Emojis
myText.toMutableList() // ❌ Fails because of Emojis

最佳答案

在 Kotlin 中,如果针对 JDK 8 或更高版本,您可以使用:

fun String.splitToCodePoints(): List<String> {
return codePoints()
.toList()
.map { String(Character.toChars(it)) }
}
如果使用 JDK 7,则更加手动:
fun String.splitToCodePoints(): List<String> {
val list = mutableListOf<String>()
var count = 0
while (count < length) {
with (codePointAt(count)){
list.add(String(Character.toChars(this)))
count += Character.charCount(this)
}
}
return list
}
这些领域似乎缺少 Kotlin 标准库,因为您必须依赖 JDK 装箱的原始类将代码点整数转换为字符串。
正如此处另一个答案中提到的,如果您需要处理零宽度连接器,则必须更多地参与其中。您可能需要删除任何零宽度连接符,以便可以单独显示字符,或者您可能希望将它们一起显示,因此需要操作列表以组合由连接符分隔的元素。如果语言使用连字,这会影响这个决定。

关于java - 将带有表情符号的字符串映射到 Array<String|Char>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63173425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com