java转义字符
java中\需要用\\来表示,这个你应该知道,而split中传入的参数是什么呢 它并不是普通的字符串 你可以查一下api文档 它要求传入的是正则表达式 而正则表达式也需要这个\所以在这里有这个\\
概念:通过 \ 来转变后面字母或符号的含义。
看一段程序
1
2
3 String t = "a||b||c||d";
String[] temp = t.split("\\|\\|");
System.out.println(temp.length);
主要是:"\\|\\|" 代表什么意思?开始有点蒙,后来仔细一看明白了,原来是这样的:\\会转义成反斜杠,反斜杠本身就是转义符,所以就成了“\|”,在进行转义就是|,所以\\|实际上是“|”。更深层次研究:java的转义字符1.八进制转义序列:\ + 1到3位5数字;范围'\000'~'\377' \0:空字符
2.Unicode转义字符:\u + 四个十六进制数字;0~65535 \u0000:空字符
3.特殊字符:就3个
\":双引号
\':单引号
\\:反斜线
4.控制字符:5个
\' 单引号字符
\\ 反斜杠字符
\r 回车
\n 换行
\f 走纸换页
\t 横向跳格
\b 退格
点的转义:. ==> u002E
美元符号的转义:$ ==> u0024
乘方符号的转义:^ ==> u005E
左大括号的转义:{ ==> u007B
左方括号的转义:[ ==> u005B
左圆括号的转义:( ==> u0028
竖线的转义:| ==> u007C
右圆括号的转义:) ==> u0029
星号的转义:* ==> u002A
加号的转义:+ ==> u002B
问号的转义:? ==> u003F
反斜杠的转义: ==> u005C所以\\|实际上还可以写成:\\u007C
转自http://www.jb51.net/article/67835.htm
一.常见的转义字符
转移字符对应的英文是escape character , 转义字符串(Escape Sequence)
字母前面加上捺斜线"\"来表示常见的那些不能显示的ASCII字符.称为转义字符.如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。
所有的转义字符和所对应的意义:

二./斜线与\反斜线
① / 斜线, slash或又称为forward slash (前斜线), 原本是标点符号。 起源于古罗马,中世纪时用作逗号(而当时的双斜线//是被当作连接号的,后来演化成等号=)。
a) 英语里的斜线, 最常用的即使替代字符“or”表选择, 比如: Yes/No; 还有就是避免名字的冲突,比如美国的人口普查表中有"Assyrian/Chaldean/Syriac", 就是为了避免因Syriac名字不同叫法而产生的冲突或歧义,其实也是or的含义;
b) 算术; 英文里面称over, 比如: 123/456,也即分数 c) 金钱表示。 $50/- 表示50美元上限, 后面没有了,防止有人添加修改。
d) 日期的表示
② \ backslash, 反斜线, 主要用于电脑中, 也正是对普通/斜线的借鉴。 操作系统(xNix), 电脑语言(C/C++, Perl),编码(部分Unicode)等都使用它。
有一个的字符串,打印的结果如下:
hello \r\n world
现在要把其中的 \r\n 替换为正常的回车,再次的打印即为:
hello
world
可以用
replaceAll ("\\\\r\\\\n", "\n");
因为在字符在Java中实际是这样存储的"hello \\r\\n world", 而 '\' 又需要转义成 '\\'才行。
同理可得;
替换 \" -> "
proText = proText.replaceAll("\\\\\"", "\"");
这是获取当前简单java工程的classpath的两种方法,控制台输出如下: path: file:/E:/LuJunXian/aotospace/ReadOffice/bin/ path2: E:\LuJunXian\aotospace\ReadOffice
可见:path使用的分隔符是斜杠:“/” ; 而path2使用的是反斜杠: "\" ; 在java语言中,“\”所代表的是转义字符,并不代表反斜杠本身,所以在java代码中想要表示反斜杠本身“\”,则需要表示为“\\”,前一个反斜杠表示转义后一个反斜杠为反斜杠本身,也就是说,如果需要在控制台通过System.Out.println()打印出一个反斜杠的话,代码需要这样写System.out.println("\\");再稍微的延伸一下,如果需要在控制台打印单引号或者双引号的话,代码是System.out.println("\"");如果不加转义字符“\”就会出现配对的错误。
在String类的方法里面,split和replace或者replaceAll会经常被用到,比如,若需要将path2的文件分隔符转换为path的类型,则需要将代码写成 path2.replaceAll("\\\\", "/"); 为什么需要这样写呢?原因就是第一个参数是正则表达式,在正则表达式中,“\”也是转义字符,可以简单的理解为,第一个参数需要经过两次转义才能将其转化为一个普通的字符串,所以就是前两个反斜杠"\\"经过正则表达式的转换后变成"\",同理,第三个和第四个经过正则表达式转换后也变成"\",所以经过第一次转换后的第一个参数变成“\\”,第二次转义后就变成了普通的字符"\"而不是转义字符, 同样的道理:若有一段字符串:“ab||cd||1234||8569”,这串字符被“||”分隔,若是需要用split解析的话,应该写成String []strs=str.split("\\|\\|"); 下表列举了其他的一些常用转义字符。
转自:http://www.cnblogs.com/DreamDrive/p/4676534.html