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

Enr*_*iMR 7 java regex string

我正在生成一个XML文件来进行付款,我对用户的全名有约束.那个参数只接受字母字符(a-ZAZ)+空格来分隔姓名和姓氏.

我无法以简单的方式过滤这个,我如何构建正则表达式或过滤器以获得我想要的输出?

例:

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

我需要用单个元音转换带有装饰的元音,如下所示:á> a,à> a,a,等等; 并删除点,连字符等特殊字符.

谢谢!

ass*_*ias 14

您可以先使用Normalizer,然后删除不需要的字符:

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
Run Code Online (Sandbox Code Playgroud)

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

在这种情况下的替代方案可能是列出所有可能的字母及其替代品......