我在这里尝试了所有示例,但在下面的情况下都没有用,我想替换“\n\r”并准备一个如下所示的数组。
我试过如下运行,但没有显示预期的结果
String m = "\\r\\nDate cf Mfg. \\r\\nMRP \\r\\n(Incl.of ali taxes) \\r\\nI I i I I I I I I I I I I I ! I I I Ill I I I I Ill \\r\\nS.No:602NRJT053740 \\r\\n61281660 \\r\\nModel .•GL-B171RDCM \\r\\n: ADGZEBNON) \\r\\nRefrigerator ";
String ar[] = m.replaceAll("\\r\\n", "#").split("#");
System.out.println(ar.length);
最佳答案
问题出在您的字符串文字中:您对 \r
和 \n
进行了两次转义,因此它们实际上不是 \r
和\n
,它们是一对反斜杠加r
和反斜杠加n
。
正则表达式中需要双反斜杠,因为它的内容被反转义了两次 - 一次由 Java 编译器转义,另一次由正则表达式引擎转义。另一方面,字符串文字需要单次转义。
要解决此问题,请从初始化 m
的字符串文字中删除双反斜杠:
String m = "\r\nDate cf Mfg. \r\nMRP \r\n(Incl.of ali taxes) \r\nI I i I I I I I I I I I I I ! I I I Ill I I I I Ill \r\nS.No:602NRJT053740 \r\n61281660 \r\nModel .•GL-B171RDCM \r\n: ADGZEBNON) \r\nRefrigerator ";
Demo (打印 10)。
关于java替换\\r\\n并将它们放入数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36563066/