如何删除 Java 字符串中的格式,同时保留重音字符?
请参阅下面的示例。我的目标是获取 öwnNämé@gmail.com(请注意 𝗴𝗺𝗮𝗶𝗹.𝗰𝗼𝗺 如何更改为 gmail.com)
String formattedStr = "öwnNämé@𝗴𝗺𝗮𝗶𝗹.𝗰𝗼𝗺";
for(int i=0; i < formattedStr.length(); i++) {
System.out.print(formattedStr.charAt(i));
}
这是上面的输出。 (奇怪的是,如果我使用 print
而不是 println
,它打印得很好)
ö
w
n
N
ä
m
é
@
?
?
?
?
?
?
?
?
?
?
.
?
?
?
?
?
?
如果我使用 Integer.toHexString(formattedStr.codePointAt(i))
而不是 formattedStr.charAt(i)
,这就是输出
f6
77
6e
4e
e4
6d
e9
40
1d5f4
ddf4
1d5fa
ddfa
1d5ee
ddee
1d5f6
ddf6
1d5f9
ddf9
2e
1d5f0
ddf0
1d5fc
ddfc
1d5fa
ddfa
最佳答案
您可以使用 Normalizer.Form.NFKC
来解决您的问题:
String response = Normalizer.normalize(formattedStr, Normalizer.Form.NFKC);
这将返回一个不带粗体字符的字符串,并将打印出来。
ö
w
n
N
ä
m
é
@
g
m
a
i
l
.
c
o
m
关于java - 删除 Java String 的格式,同时保留重音字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65325621/