我正在解析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("[á]", ""));
}
答案 0 :(得分:1)
为什么不直接替换包含重音字符的正面字符类:
String input = "hablá";
input = input.replaceAll("[á]", "");
System.out.println(input);
或者
input = input.replaceAll("[\\u00e1]", "");
<强>输出:强>
habl
答案 1 :(得分:0)
将您想要删除的字符添加到正则表达式模式匹配中。
e.g。
[^a-zA-Z0-9$\/\]\[\:\,]+
将匹配a-z,A-Z,0-9,/,\,],[,:,,,不要忘记使用\
来转义模式中的特殊字符此外,您可以使用https://regex101.com/检查您创建的任何正则表达式的有效性。
答案 2 :(得分:0)