Java 为什么在下面提到的代码部分中管道符号转义了两次?

Java 为什么在下面提到的代码部分中管道符号转义了两次?,java,regex,string,Java,Regex,String,为什么管道符号在下面的代码中转义了两次。是“\\\;”还是regex?如果是,这意味着什么 String str[], str1 = "This|is|a|sentence" str = str1.split("\\|"); \\\\\\表示文字管道符号,\\\\\\ 若它并没有被转义,那个么它就是交替运算符,所以您将在空字符串或空字符串上进行拆分,这样您将得到一个单个字符的数组 如果要将\放入Java字符串文字中,则必须将其自身转义,因为\用于标记控制字符,如\n(unix新行) 如果您要编

为什么管道符号在下面的代码中转义了两次。是
“\\\;”
还是
regex
?如果是,这意味着什么

String str[], str1 = "This|is|a|sentence"
str = str1.split("\\|");

\\\\\\
表示文字管道符号,
\\\\\\

若它并没有被转义,那个么它就是交替运算符,所以您将在空字符串或空字符串上进行拆分,这样您将得到一个单个字符的数组

如果要将
\
放入Java字符串文字中,则必须将其自身转义,因为
\
用于标记控制字符,如
\n
(unix新行)

如果您要编写
“\\\\”
,您的代码甚至不会编译,因为
不是控制字符。您可以在此处看到所有控制字符:

为什么在下面提到的代码部分中管道符号转义了两次

不是,但你会认为这是可以理解的

正则表达式模式是
\\\\\\
,因为
\
表示交替,除非您转义它


因为我们是用字符串文字来编写模式,而
\
在字符串文字中是特殊的,所以我们必须用
\
来转义它。所以我们得到了“\\\\”

“\\\”是正则表达式中的一个特殊标记-它是一个“或”操作符。你必须逃避它;)第一个是转义字符串中的斜杠,第二个是转义正则表达式中的
|
,以逐字匹配。另请参见。嗯,确切地说,您可以说“在字符串文本中,反斜杠本身必须转义,带有…反斜杠。因此输出”。