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

如何过滤Java字符串以仅获取字母字符?

江琦
2023-03-14
问题内容

我正在生成一个XML文件进行付款,并且我对用户的全名有一个限制。该参数仅接受字母字符(a-ZAZ)+空格来分隔名称和姓氏。

我无法通过简单的方式对此进行过滤,如何构建正则表达式或过滤器以获得所需的输出?

例:

'Carmen López-Delina Santos' 一定是 'Carmen LopezDelina Santos'

我需要将元音转换成带有单个元音的装饰,如下所示:á> a,à> a,â> a,依此类推;等等。并删除特殊字符,如点,连字符等。

谢谢!


问题答案:

您可以先使用规范化器,然后删除不需要的字符:

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

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

这种情况下的替代方法可能是列出所有可能的字母及其替换。



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

  • 问题内容: 我知道如何计算字符串中某个字符或数字的索引,但是我可以使用任何预定义的方法在第n个位置给我该字符吗?因此,在字符串“ foo”中,如果我要求索引为0的字符,它将返回“ f”。 注意-在上述问题中,“字符”不是字符数据类型,而是字符串中的字母或数字。这里重要的是,调用该方法时,我不会收到字符,而是一个字符串(长度为1)。而且我知道substring()方法,但是我想知道是否有更整洁的方法

  • 问题内容: 我有这样的数据: 我期望的输出是 我想在SQL中实现它。 问题答案: 首先创建这个 现在使用 as SQL字段 我希望这可以解决您的问题。

  • 问题内容: 我有一些包含字母数字值的字符串输出。我只想从该字符串中获取数字。如何通过查询获取?我可以使用哪个MySql函数? 我的查询就像: 输出: 我想要输出像: 问题答案: 如果字符串以数字开头,然后包含非数字字符,则可以使用该函数,或者通过添加一个将其隐式转换为数字: 要从 任意 字符串中提取数字,您可以添加一个自定义函数,如下所示: 定义函数后,您可以在查询中使用它:

  • 问题内容: 我正在尝试验证我的字符串是否与模式匹配。也就是说,完整的字符串可以写为该模式。但是,如果有任何子字符串匹配该模式,则返回。(如回报,这是我不想在这个例子中,我宁愿验证,整个字符串只含有少量拉丁字母)。 问题答案: 您可以使用 开始 和 结束 标记,并分别指示开始,在您的正则表达式模式的字符串的结尾。这样,您可以使表达式仅匹配整个字符串,而不匹配任何子字符串。在您的情况下,它将如下所示:

  • 我使用的是JAVA中的Jayway JsonPath 2.2版本。关于这一点,我几乎没有问题。 示例JSON: > 如: 用于获取字符串的路径是预期结果:(字符串),但获取["type2"](数组) 如果我将其作为字符串提取时出错,请更正路径? 应用筛选器后,无法为结果数组编制索引。我怎样才能达到同样的效果? 如: 如果我使用路径,而不是返回第一个,它将返回 是否可以使用jsonPath从字符串中