如何用Java中的空字符串替换á字符?

时间:2017-10-25 04:49:28

标签: java string

我正在解析CSV文件,在那里遇到像á这样的特殊字符。

String line = scanner.nextLine();

任何人都可以帮我删除字符串行中的á和损坏的字符。 我尝试了以下

line.replaceAll("[^a-zA-Z0-9]+","");

但它取代了:/ [ ]符号。

 inputStream = filePart.getInputStream();
 Scanner scanner = new Scanner(inputStream);
 while (scanner.hasNextLine()) {
     String line = scanner.nextLine();
     System.out.println("Line : " + line.trim());
     String[] fields = line.split(",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)", -1);
     for (int i = fields.length - 1; i >= 0; i--) {
         System.out.println(i + " " + fields[i].replaceAll("[á]", ""));
     }

3 个答案:

答案 0 :(得分:1)

为什么不直接替换包含重音字符的正面字符类:

String input = "hablá";
input = input.replaceAll("[á]", "");
System.out.println(input);

或者

input = input.replaceAll("[\\u00e1]", "");

<强>输出:

habl

Demo

答案 1 :(得分:0)

将您想要删除的字符添加到正则表达式模式匹配中。

e.g。

[^a-zA-Z0-9$\/\]\[\:\,]+

将匹配a-z,A-Z,0-9,/,\,],[,:,,,不要忘记使用\

来转义模式中的特殊字符

此外,您可以使用https://regex101.com/检查您创建的任何正则表达式的有效性。

答案 2 :(得分:0)

您可以使用如下所示的替换方法:

line = line.replace("á","");

Demo