如何在java中为字母添加重音符号

问题描述 投票:0回答:1

我正在尝试在java中将字母字符与重音符号结合起来。例如: 将字母“e”(\u0065) 与组合重音符号 (\u0300) 组合起来。 我在java中尝试了多种方法,并相信我应该使用java.text.Normalizer,但不知道如何去做。

我已尝试以下操作:

String combinedLetter = Normalizer.normalize("\u0065\u0300", Form.NFKD);

还有

Char CombinedLetter = (char) (0+0065 + 0+0300));

但是到目前为止都没有奏效,有什么想法可以做到这一点吗?我不能只使用 é 字符,因为我需要对每个字母字符执行此操作。

java unicode diacritics unicode-string codepoint
1个回答
0
投票

你工作太辛苦了。无需调用任何标准化器。无需铸造。

自 Java 2 以来,

char
类型已基本被破坏,自 Java 5 以来已被遗留。作为 16 位值,
char
在物理上无法表示大多数字符。

要处理单个字符,请使用 Unicode 代码点整数。您将在各种类上找到代码点方法,例如

String
StringBuilder
Character

这是使用十六进制数字的代码点文字的示例。

    System.out.println( "\u0065\u0300" ) ;

è

这里是

    String output = new StringBuilder().appendCodePoint( 101 ).appendCodePoint( 768 ).toString() ;
    System.out.println( output ) ;
© www.soinside.com 2019 - 2024. All rights reserved.