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

从Java中的字符串中删除变音符号

靳高明
2023-03-14
问题内容

如何从字符串中删除变音符号?

例如,转换适用于所有语言的所有á-> a,č-> c等。

我正在进行全文搜索,因此需要忽略搜索文字的任何变音符号。

谢谢


问题答案:

使用9级以上的API,您可以使用Normalizer类,例如

String normalized = Normalizer.normalize("âbĉdêéè", Form.NFD)
    .replaceAll("\\p{InCombiningDiacriticalMarks}+", "");

(Keysers链接的答案看起来更好,它可以清除更多废话)

这将返回"abcdeee"



 类似资料:
  • 问题内容: 可能吗?这是我的输入字符串: 这是我想要的输出: 问题答案: Wordpress使用了一个功能,效果很好。这是带有输出的工作代码。

  • 问题内容: 我正在寻找一种算法,该算法可以在带有变音符号的字符(tilde,circumflex,caret,umlaut,caron)与其“简单”字符之间进行映射。 例如: 等等。 我想用Java做到这一点,尽管我怀疑它应该是Unicode-y,并且应该可以轻松地以任何语言进行操作。 目的:允许轻松搜索带有变音标记的单词。例如,如果我有一个网球运动员数据库,并且输入了Björn_Borg,我还将

  • 问题内容: (据我所知)Android中是否有任何方法都没有java.text.Normalizer从字符串中删除任何重音符号。例如,“éàù”变成“ eau”。 如果可能,我想避免解析String来检查每个字符! 问题答案: 在Android中可用(无论如何都是最新版本)。您可以使用它。 编辑 供参考,这里是如何使用: (从下面评论中的链接粘贴)

  • 问题内容: 如何从字符串中删除重音符号?尤其是在IE6中,我有类似以下内容: 但是IE6困扰着我,似乎不喜欢我的正则表达式。 问题答案: 使用ES2015 / ES6 String.Prototype.Normalize(), 这里发生两件事: 根据Unicode规范形式,将组合的字形分解为简单的字形。在中端起来表示为+ 。 现在,使用正则表达式字符类来匹配U + 0300→U + 036F范围,

  • 问题内容: 如何从Swift中删除变音符号(或重音符号)(例如说将“één”更改为“ een”)?我必须回到Swift还是可以在Swift中完成? 问题答案: 您可以直接在Swift上操作(如果导入了“ Foundation”): 斯威夫特3:

  • 问题内容: 我正在尝试从PHP字符串中的字符中删除重音符号,作为使字符串在URL中可用的第一步。 我正在使用以下代码: 我期望的输出将是这样的: 但是,不是将重音字符音译,而是将它们替换为问号: 我在网上可以找到的所有内容都表明,设置语言环境将解决此问题,但是我已经这样做了。我已经检查了以下详细信息: 服务器支持我设置的语言环境(包含在产生的列表中) 服务器的iconv版本(包含在产生的列表中)支