一:java转义字符对照表(字符对照表网上很多,但是不用记住的,有更简单的方法,请见(四)的结果分析;另外需要记住(五)中的3个特殊字符 和 5个控制字符)
点的转义:. ==> u002E
美元符号的转义:$ ==> u0024
乘方符号的转义:^ ==> u005E
左大括号的转义:{ ==> u007B
左方括号的转义:[ ==> u005B
左圆括号的转义:( ==> u0028
竖线的转义:| ==> u007C
右圆括号的转义:) ==> u0029
星号的转义:* ==> u002A
加号的转义:+ ==> u002B
问号的转义:? ==> u003F
反斜杠的转义: ==> u005C
二:具体测试实验
(1)非预想的代码(结果不是想要的)
String str2="a$b$c"; String strs[]=str2.split("$"); for(String str:strs){ System.out.println(str); }
结果:并不会打出 a , b ,c需要转义才可如:
(2) 预想的代码(预想的结果)
String str2="a$b$c"; String strs[]=str2.split("\\u0024"); // 这句话 等效为 split("\\."),其它的依次类推 再如| split("u007c") 或者 split("\\|") for(String str:strs){ System.out.println(str); }
三:完整的代码:
public static void main(String[] args){
System.out.println("****\\\\");
String str = "a\\b\\b\\c.csv|aaaaa";
String[] chars = str.split("\\\\");
String[] fileName = chars[3].split("\\.");// u002e
String[] tmp = chars[3].split("\\u007c");// \\u007c
for(String cha:chars){
System.out.println(cha);
}
System.out.println(fileName[0]);
System.out.println(tmp[1]);
}
四:总结
(1)如 | split("u007c") 或者 split("\\|") ;
(2)java转义字符对照表 里面的都可以按照上面的就行转义,即 String expr = "\\相应字符"; 即可;而不用记住其对应的16进制序列。
五:知识补充(3个特殊字符 和 5个控制字符,其实类似于字符对照表的,把双斜杠\\相应字符 改为 单斜杠\相应字符)
1.八进制转义序列:\ + 1到3位5数字;范围‘\000‘~‘\377‘
\0:空字符
2.Unicode转义字符:\u + 四个十六进制数字;0~65535
\u0000:空字符
3.特殊字符:就3个
\":双引号
\‘:单引号
\\:反斜线
4.控制字符:5个
\‘ 单引号字符
\\ 反斜杠字符
\r 回车
\n 换行
\f 走纸换页
\t 横向跳格
\b 退格