为什么管道符号在下面的代码中两次转义。 "\|"
也是regex
吗?如果是这样,那是什么意思?
String str[], str1 = "This|is|a|sentence"
str = str1.split("\\|");
答案 0 :(得分:3)
为什么管道符号在下面提到的代码段中被转义两次?
不是,但你认为它是可以理解的。
正则表达式模式为\|
,因为|
表示替换,除非您将其转义。
因为我们在字符串文字中编写该模式,并且\
在字符串文字中很特殊,所以我们必须使用\
来转义 it 。我们得到"\\|"
。
答案 1 :(得分:0)
\\|
表示文字管道符号|
。
如果它没有被转义,它就是交替运算符,所以你要拆分空字符串或空字符串,这样你就可以得到一个单独字符的数组。
如果要将\
放在Java字符串文字中,则必须自行转义它,因为\
用于标记控件字符,如\n
(unix new line) )。
如果您编写"\|"
,您的代码甚至无法编译,因为|
不是控制字符。您可以在此处查看所有控制字符:What are all the escape characters in Java?