为什么\";适用于Java String.split,但不适用于“\”&引用;?
我想在Java中按点(“.”)拆分字符串,我知道Java中字符串的拆分函数使用正则表达式,所以我使用了为什么\";适用于Java String.split,但不适用于“\”&引用;?,java,string,split,Java,String,Split,我想在Java中按点(“.”)拆分字符串,我知道Java中字符串的拆分函数使用正则表达式,所以我使用了someString.split(“\”)来转义特殊字符“”,但它不起作用;我尝试了someString.split(\\”)并且成功了 我以前使用了split(“\t”)来使用tab拆分字符串,结果成功了。为什么不必转义特殊字符'\t'如拆分(\\t”)?拆分函数与实际字符串匹配,因此不必转义“\t”,因为您希望它查找的是制表符,而不是字符序列“\t”(即“\\t”可以实现的).@ErwinB
someString.split(“\”)
来转义特殊字符“”,但它不起作用;我尝试了someString.split(\\”)
并且成功了
我以前使用了
split(“\t”)
来使用tab拆分字符串,结果成功了。为什么不必转义特殊字符'\t'
如拆分(\\t”)
?拆分函数与实际字符串匹配,因此不必转义“\t”,因为您希望它查找的是制表符,而不是字符序列“\t”(即“\\t”可以实现的).@ErwinBolwidt:谢谢你提醒我。这么多语言,这么多略有不同的规则…:-)有关详细信息,请参见链接问题的答案,但是要重新区分“\.”
和“\t”
,这是因为在字符串文本中,\.
是无效的转义序列,而在字符串文本中,\t
是制表符。由于制表符在正则表达式中并不特殊,split(“\t”)
split在制表符上。要将反斜杠传递给基础正则表达式(这样您就可以转义
,因为它在正则表达式中是特殊的),您需要在字符串中有一个实际的反斜杠,因此当然您必须转义它(“\\”
)。