public class test {
public static void main(String[] args) {
System.out.println("'");
System.out.println("\'");
System.out.println("\\'");
System.out.println("\\\'");
System.out.println("\\\\'");
System.out.println("\\\\\'");
System.out.println("\\\\\\'");
System.out.println("\\\\\\\'");
System.out.println("\\\\\\\\'");
System.out.println("\\\\\\\\\'");
}
}对结果解释一下。
public static void main(String[] args) {
System.out.println("'");
System.out.println("\'");
System.out.println("\\'");
System.out.println("\\\'");
System.out.println("\\\\'");
System.out.println("\\\\\'");
System.out.println("\\\\\\'");
System.out.println("\\\\\\\'");
System.out.println("\\\\\\\\'");
System.out.println("\\\\\\\\\'");
}
}对结果解释一下。
也就是遇到第一个\然后用下一个\作为一组 得到\
如果没有下一个\ 比如\'直接转义成'
\\ -> \
从左到右,依次进行
\\'先匹配\\于是得到一个真正的\,所以输出\'
\\\' 先匹配\\于是得到一个真正的\,再匹配\'得到',所以输出\'
\t 水平制表符(\u0009)
\b 空格(\u0008)
\r 换行(\u000d)
\f 换页(\u000c)
\' 单引号(\u0027)
\" 双引号(\u0022)
\\ 反斜杠(\u005c)
\ddd 三位八进制
\udddd 四位十六进制 也就是\\就打印\
\'就打印'
所以比如
System.out.println("\\\\\\\\\'");
就是8/2 = 4个\ + \' = \\\\'