假设A的unicode是\u9876。我想得到A.之后的7个字符,即H。 有没有办法得到 do (A's unicode ) + 7 然后将其转换为 char。
最佳答案
这篇文章不是答案,而是一篇“困惑清理”文章。
首先,Unicode代码点的范围是从U+0000到U+10FFFF;在所有这个范围内,某些代码点实际上是无效的。
Java 的 char
本质上是一个 UTF-16 代码单元。对于基本多语言平面之外的 Unicode 码位,即 U+FFFF 以上,需要两个字符来编码一个码位;请参阅Character.toChars()
。对于 BMP 内部的代码点,Unicode 和 char
之间存在一对一的映射。
除此之外,尽管 char
具有特殊的作用,但它是一种数字类型;它也是Java中唯一的无符号数字类型。您可以对其使用算术运算,对于 BMP 内的代码点,将 7 添加到 char
(即“\u9876”)将得到代码点“\u9883”。
但考虑到上述情况,这是一个危险的举动......
(fwiw,在 BMP 之上,Character.toChars()
将返回一个“字符对”;返回数组的第一个元素将是前导代理,第二个元素将是Trail 代理;Java API 仍然使用旧的 Unicode 术语,并分别将它们称为“高”和“低”代理。有关更多详细信息,请参阅 Wikipedia article on UTF-16 ,它很好地解释了什么是什么)
关于java - java中如何从另一个字符中获取一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23863660/