如何删除 java 中的特定特殊字符?

How can I remove specific special characters in java?

我是 Java 的初学者,理解正则表达式的工作原理仍然非常复杂。我不知道如何创建正则表达式来检查和删除字符串中的某些特定特殊字符。

"!@#$%¨&*()_-+={[}]º|\,.:;?/°(我需要检查并将其从字符串中删除)

提前致谢

我不知道这是否是个好习惯,但它确实有效。

private String check(String answer) {
    return answer.replaceAll("[!@#$%¨&*()_\-+={\[}\]º|\\,.:;?/°]", "");
}

String answer = "Lore!m ips@um dol$or si%t amet, co¨nsectetur adi&piscing el*it. Mo(rbi pla)cerat, tu_rpis s_it am+et acc=umsan ve{nenatis, ma[gna r}isus ulla]mcorper an|te, ne\c por,ttitor lac.us n:unc se;d el?it. Nul/la tristi°que posºuere felis, in ullamcorper sapien dignissim sit amet.";

Log.i("ans", check(answer));

Lorem ipsum dolor sit amet consectetur adipiscing elit Morbi placerat turpis 
sit amet accumsan venenatis magna risus ullamcorper ante nec porttitor lacus 
nunc sed elit Nulla tristique posuere felis in ullamcorper sapien dignissim 
sit amet

您可以使用正则表达式删除所有标点符号 (\p{P}) 和符号 (\p{S}) 以及 º 符号:

String result = s.replaceAll("[\p{S}\p{P}º]+", "");

或使用\p{Punct} (One of !"#$%&'()*+,-./:;<=>?@[\]^_{|}~`)

String result = s.replaceAll("[\p{Punct}º]+", "");

看到一个Java demo:

import java.util.*;
import java.lang.*;
import java.io.*;

class Ideone
{
    public static void main (String[] args) throws java.lang.Exception
    {
        String answer = "Lore!m ips@um dol$or si%t amet, co¨nsectetur adi&piscing el*it. Mo(rbi pla)cerat, tu_rpis s_it am+et acc=umsan ve{nenatis, ma[gna r}isus ulla]mcorper an|te, ne\c por,ttitor lac.us n:unc se;d el?it. Nul/la tristi°que posºuere felis, in ullamcorper sapien dignissim sit amet.";
        System.out.println(check(answer));
    }
    private static String check(String answer) {
        return answer.replaceAll("[\p{S}\p{P}º]+", "");
    }
}

输出:

Lorem ipsum dolor sit amet consectetur adipiscing elit Morbi placerat turpis sit amet accumsan venenatis magna risus ullamcorper ante nec porttitor lacus nunc sed elit Nulla tristique posuere felis in ullamcorper sapien dignissim sit amet