代码如下:
 String ss = "notice@bxsbst@/app/WebSphere/AppServer/installedApps/sinosoft/ECML.ear/ECML.war@";
 String [] arrSs = ss.split("@");
 System.out.println(arrSs.length);
打印结果为3
如果写成下面的样子
 String ss = "notice$bxsbst$/app/WebSphere/AppServer/installedApps/sinosoft/ECML.ear/ECML.war$";
 String [] arrSs = ss.split("$");
 System.out.println(arrSs.length);打印结果是1.
然后我用ss.split("\\$");或者ss.split("\\@");试了一下打印结果就是3了,不明白为什么,难道java中$和@有什么转译上的规定吗?求解!

解决方案 »

  1.   

    public String[] split(String regex)根据给定正则表达式的匹配拆分此字符串。 
    而$在正则表达式中的含义是:行的结尾。所以,只有用 "\\$"才能是以$字符分界。
    类似的,^在正则表达式中的含义是:行的开头。所以,只有用 "\\^"才能是以$字符分界。
    而@在正则表达式中,没有特殊含义。所以,可以不用转义。