当前位置: 首页 > 知识库问答 >
问题:

如何过滤Java字符串以只得到字母字符?

萧琛
2023-03-14

“Carmen López-Delina Santos”必须是“Carmen LopezDelina Santos”

我需要在单元音中变换带有装饰的元音,如下所示:á>a,à>a,â>a,以此类推;并删除点、连字符等特殊字符。

谢谢!

共有1个答案

萧星火
2023-03-14

您可以首先使用规格化程序,然后删除不需要的字符:

String input = "Carmen López-Delina Santos";
String withoutAccent = Normalizer.normalize(input, Normalizer.Form.NFD);
String output = withoutAccent.replaceAll("[^a-zA-Z ]", "");
System.out.println(output); //prints Carmen LopezDelina Santos

注意,这可能不适用任何语言中的所有和任何非ASCII字母--如果遇到这种情况,该字母将被删除。其中一个例子是土耳其语i

在这种情况下的另一种选择可能是列出所有可能的字母及其替换。

 类似资料:
  • 问题内容: 我正在生成一个XML文件进行付款,并且我对用户的全名有一个限制。该参数仅接受字母字符(a-ZAZ)+空格来分隔名称和姓氏。 我无法通过简单的方式对此进行过滤,如何构建正则表达式或过滤器以获得所需的输出? 例: 一定是 我需要将元音转换成带有单个元音的装饰,如下所示:á> a,à> a,â> a,依此类推;等等。并删除特殊字符,如点,连字符等。 谢谢! 问题答案: 您可以先使用规范化器,

  • 我能够通过使用下面这个问题的注释提供的代码来解决这个问题。所有其他帖子都是有效的! 我使用的有用的东西来自第一个评论。虽然提供的所有示例代码似乎也是有效的!

  • 我有以下字符串: 我需要一个正则表达式来删除数字之间的空白,但也要避免在数字之前有一个非数字值,如 这里想要避免任何非数值后面的数值,这里在我的字符串中想要避免数值也在H后面,这里有2,但我只想做一个像“23445 2546”这样的字符串。如果有任何字母字符在那里,它应该被删除,并添加空格之间的数字。 从上面的正则表达式和代码,我得到了输出: 所需输出:

  • 问题内容: 我一直在寻找一种简单的 Java算法来生成伪随机的字母数字字符串。在我的情况下,它将用作唯一的会话/密钥标识符,在整个世代中“可能”是唯一的(我的需求实际上不需要任何更复杂的东西)。 理想情况下,我可以根据自己的独特性要求指定长度。例如,生成的长度为12的字符串可能看起来像。 问题答案: 算法 要生成随机字符串,请连接从可接受的符号集中随机抽取的字符,直到字符串达到所需的长度。 实作

  • 问题内容: 在rails中,我使用gem进行搜索。我需要添加一个称为过滤器的字符串字段。如何添加到此插件? 我已经对此问题提出了一个问题Rails-如何在searchkick中添加更多字段以进行过滤 现在,我正在尝试使用字符串字段而不是布尔值,但搜索仍然无法正常工作。请同样帮助我。 我已经添加了一个条件,例如,根据此条件,我应该只获得活动用户(而不是“已删除”用户)。目前没有任何搜索数据在显示。

  • 问题内容: 输入示例: 输出示例: 字母和数字部分的长度不固定。 我知道如何将split()与regex一起使用,但是尽管我检查了Java API,但找不到任何可以帮助我解决此问题的东西。 有没有办法做到这一点?或者我需要使用另一种方法来拆分这些字符串。 任何帮助,将不胜感激。 问题答案: 试试这个正则表达式: 这是一个正在运行的示例:http : //ideone.com/c02rmM 正则表达