代码如下:
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中$和@有什么转译上的规定吗?求解!
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中$和@有什么转译上的规定吗?求解!
而$在正则表达式中的含义是:行的结尾。所以,只有用 "\\$"才能是以$字符分界。
类似的,^在正则表达式中的含义是:行的开头。所以,只有用 "\\^"才能是以$字符分界。
而@在正则表达式中,没有特殊含义。所以,可以不用转义。