This question already has answers here:
Why String.split(“$”) doesn't work?
                                
                                    (3个答案)
                                
                        
                5年前关闭。
            
        

我有一个包含字符串行的文本文件。使用“ $ @”符号分隔字符串。
(xxxx $ @ yyyy $ @ zzzz)

我想将这些字符串分开。所以我尝试了以下代码

String string = "xxx $@ yyyy $@ zzzz";
String[] parts = string.split("$@");


但它不起作用。

无论我如何创建测试项目以及如何在“ $ @”中插入“-”符号,它都可以正常工作。

那么我该如何分隔这些字符串呢?有什么建议么??

最佳答案

您为split提供的字符串定义了一个正则表达式,因此必须转义正则表达式中的任何特殊字符:

String[] parts = string.split("\\$@");


您在带有单个反斜杠的正则表达式中转义了特殊字符。要在Java中将单个反斜杠转换为字符串文字,您必须对其进行转义,因此最终会产生两个反斜杠。

10-07 13:27
查看更多