我有以下阿拉伯字符串:
عضومنذ14نوفمبر,2009
乍看之下,数字14前面似乎有一个空格,但这不是事实。我无法确定此字符是什么。我试过了isEmpty,isBlank,.equals(“”),== null,但是没有任何返回true。如何在该位置检索字符的unicode值?要提取字符,我可以这样做:
bar
答案 0 :(得分:1)
如果我们逐个查看字符并使用以下命令打印其unicode-counterpart:
val memberSinceText = "عضو منذ 14 نوفمبر، 2009"
memberSinceText.toCharArray()
.forEachIndexed { pos, c ->
println("$pos. $c -> ${String.format("\\%04x", c.toInt())}")
}
我们得到的输出类似于以下内容(对其进行了一些修改并添加了一些注释;由于同一行中的值,它并不容易复制和粘贴):
0. ع -> \0639
1. ض -> \0636
2. و -> \0648
3. -> \0020 // Space
4. م -> \0645
5. ن -> \0646
6. ذ -> \0630
7. -> \0020 // Space
8. 200f\ <- // actually omitting the symbol here due to copy&paste-problems
9. 1 -> \0031
10. 4 -> \0034
11. -> \0020 // Space
12. ن -> \0646
13. و -> \0648
14. ف -> \0641
15. م -> \0645
16. ب -> \0628
17. ر -> \0631
18. ، -> \060c
19. -> \0020 // Space
20. 2 -> \0032
21. 0 -> \0030
22. 0 -> \0030
23. 9 -> \0039
所以实际上... 14
之前和之后都有一个空格,但是在位置8处还有其他特殊字符。如果我们看的是基本上什么,我们就会得到(应用了RTL视觉):\u200f
,基本上是从右到左的标记。
在某些情况下单独打印该符号:
memberSinceText.substring(8, 9).also {
println(">$it|")
}
将打印:|<
(注意方向)。但是,打印substring(7,8)
会为您提供空格字符:> |