2024-09-03 10:36:09
我还是不是很理解为啥要用两个\,不能直接写成\u0041吗?,根据图上第一行说的,要匹配\字符,请使用\\,那整个不是成了在匹配"\u0041\"了么,我的理解是前面加\\,就是是\失去特殊意义么。。。不知道哪里不对,反过来,如果我想要匹配字符串"\u0041\",那正则表达式该怎么写呢
不能直接写\u0041,你想想看,我们用""包含字符串,万一我们要让这个字符串里面出现"该怎么弄呢,所以用一个\来做一个类似声明的意思,接下来要输入的作为真实字符,\"就可以在“”里面表示出来了,既然\拿去做特殊用途了,单独写一个\它会和后面输入的字符结合做相应的表示。后面跟数字表示相应的字符,跟",'这些字符去表示“,’。这样岂不是不能表示\了,不过这也可以用转义字符来实现,跟表示"一样,写\\不就可以了。总之就是\有特殊用途才不能直接写\。如果你要匹配字符串"\u0041\",就写xx.equals("\\u0041\\")就可以了。
2024-09-03 09:00:11
那我感觉还是有问题啊,你看图上所写的例子的第二个"\\0101\t" ,\0101八进制,表示a么,关键它开头用了\\,这是说第一个'\'把第二个‘\’转义成一个普通字符么,那么后面的0101不就成了普通字符了吗,这样子就是在匹配”\0101"了么?
前一个\是转义字符,将第二个\标识为普通字符,字符串内容中两个\\相当于\。
"\u0041"最后表示的就是一个unicode码字符。
对于这类问题,自己写一个测试类测试一下就知道了。
你好,可是为什么 String s=new String("\\u0041");System.out.println(s);的输出的是"\u0041",而String s1=new String("\u0041");System.out.println(s1);输出的是A啊。。?