我有一个字符串,其第一个字符为“ ^”。我要提取不带此字符的字符串。例如:“ ^ coal”应该变成“ coal”。以下是我编写的代码,但我不知道为什么它不起作用。

public void RegEx(String s1){
        System.out.println(s1.substring(0,1));  //to check if i am ok.
        if((s1.substring(0,1)).equals("^")){
            Pattern p = Pattern.compile("^");
            String[] extracted = p.split(s1);
            for(String s: extracted){
                System.out.println(s);
            }
        }
    }


s1 =“ ^煤”。输出=“ ^ coal”。

最佳答案

^字符在正则表达式中具有特殊含义,因此您需要对其进行转义:"\\^"

但是,正则表达式并不是实现此目的的最有效方法。只需使用substring

if (s1.startsWith("^")) {
    s1 = s1.substring(1);
}
System.out.println(s1);


注意:如上所示,您还可以使用startsWith轻松检查字符串是否以其他字符串开头。

09-28 09:31
查看更多