当前位置: 首页 > 面试题库 >

Java将符号,重音字母转换为英文字母

汪思博
2023-03-14
问题内容

问题是,正如您所知道的,Unicode图表中有成千上万个字符,我想将所有类似的字符转换为英文字母。

例如,这里有一些转换:

ҥ->H
Ѷ->V
Ȳ->Y
Ǭ->O
Ƈ->C
tђє Ŧค๓เℓy --> the Family
...

我发现字母A / a有20多个版本。而且我不知道如何对它们进行分类。它们看起来像大海捞针。

Unicode字符的完整列表位于http://www.ssec.wisc.edu/~tomw/java/unicode.html 或http://unicode.org/charts/charindex.html。只需向下滚动并查看字母的变体即可。

如何用Java转换所有这些?请帮我 :(


问题答案:

此方法在Java中效果很好(纯粹是为了消除变音符号,也就是重音符号)。

它基本上将所有带有重音符号的字符转换为它们的不带重音字符的字符,然后将它们合并为变音符号。现在,你可以使用正则表达式删除变音符号。

import java.text.Normalizer;
import java.util.regex.Pattern;

public String deAccent(String str) {
    String nfdNormalizedString = Normalizer.normalize(str, Normalizer.Form.NFD); 
    Pattern pattern = Pattern.compile("\\p{InCombiningDiacriticalMarks}+");
    return pattern.matcher(nfdNormalizedString).replaceAll("");
}


 类似资料:
  • 问题内容: 什么是从字符串如取出口音的最有效的方式变成? 是否有我缺少的简单的内置方式或正则表达式? 问题答案: 如果您安装了iconv,请尝试以下操作(该示例假定您的输入字符串位于UTF-8中): (iconv是一个库,可以在各种编码之间进行转换;它是高效的,默认情况下包含在许多PHP发行版中。最重要的是,比起尝试使用自己的解决方案,它绝对更容易且更防错(您是否知道有一个“带卷曲的拉丁字母N?”

  • 所以我是计算机科学的新手,我们被要求做的一件事是尝试创建一个程序,首先将用户输入的一个单词转换成一个数字串,a=1,b=2,z=26等等,还有一些其他的事情,因为它们是扩展,我现在不想讨论。诚然,她说她不介意我们完成它,因为这是我们今天的第一节java课程。 有鉴于此,有人能给我一些关于如何做到这一点的建议吗?我不想让一段完整的代码完全做到这一点,因为我需要学习,因此非常感谢指导之手。到目前为止,

  • 本文向大家介绍在JavaScript中将字符串转换为北约拼音字母,包括了在JavaScript中将字符串转换为北约拼音字母的使用技巧和注意事项,需要的朋友参考一下 问题 我们需要编写一个JavaScript函数,该函数接受一个字符串并将其转换为北约语音字母。 26个代码字如下:Alfa,Bravo,Charlie,Delta,Echo,Foxtrot,Golf,Hotel,印度,Juliett,K

  • 我试图找到一种方法来将像“t2hr8var4tnuloglmibpabyvdri1y02rbx”这样的长字符串ID转换为数字ID。 A=10,B=20,C=50, ABC=10+20+50=80 BAC=20+10+50=80 所以ABC=102050 这个方法不起作用,因为有一个20个字母的字符串会导致一个巨大的数字,所以我如何解决这个问题?提前谢谢你。

  • 我有这样一个字符串: 和一个数组: 我想制作这个: 我试着用sscanf(),但我做不到。

  • 问题内容: 在Java中,是否有一种简单而优雅的方法将无符号字节值转换为有符号字节值?例如,如果我所拥有的只是int值240(二进制(24位+ 11110000)= 32bits),如何获得该int的带符号值? 问题答案: 除了,Java没有其他无符号值。考虑以下代码段: 结果将为-1,因为最低的8位已复制到byte变量中。