为什么\";适用于Java String.split,但不适用于“\”&引用;?

为什么\";适用于Java String.split,但不适用于“\”&引用;?,java,string,split,Java,String,Split,我想在Java中按点(“.”)拆分字符串,我知道Java中字符串的拆分函数使用正则表达式,所以我使用了someString.split(“\”)来转义特殊字符“”,但它不起作用;我尝试了someString.split(\\”)并且成功了 我以前使用了split(“\t”)来使用tab拆分字符串,结果成功了。为什么不必转义特殊字符'\t'如拆分(\\t”)?拆分函数与实际字符串匹配,因此不必转义“\t”,因为您希望它查找的是制表符,而不是字符序列“\t”(即“\\t”可以实现的).@ErwinB

我想在Java中按点(“.”)拆分字符串,我知道Java中字符串的拆分函数使用正则表达式,所以我使用了
someString.split(“\”)
来转义特殊字符“”,但它不起作用;我尝试了
someString.split(\\”)
并且成功了


我以前使用了
split(“\t”)
来使用tab拆分字符串,结果成功了。为什么不必转义特殊字符
'\t'
拆分(\\t”)

拆分函数与实际字符串匹配,因此不必转义“\t”,因为您希望它查找的是制表符,而不是字符序列“\t”(即“\\t”可以实现的).

@ErwinBolwidt:谢谢你提醒我。这么多语言,这么多略有不同的规则…:-)有关详细信息,请参见链接问题的答案,但是要重新区分
“\.”
“\t”
,这是因为在字符串文本中,
\.
是无效的转义序列,而在字符串文本中,
\t
是制表符。由于制表符在正则表达式中并不特殊,
split(“\t”)
split在制表符上。要将反斜杠传递给基础正则表达式(这样您就可以转义
,因为它在正则表达式中是特殊的),您需要在字符串中有一个实际的反斜杠,因此当然您必须转义它(
“\\”
)。