gpt4 book ai didi

java - 转义序列未按预期工作

转载 作者:行者123 更新时间:2023-11-30 07:49:53 25 4
gpt4 key购买 nike

我必须读取一个文件,然后向某个输出文件写入一些内容。在输入和输出文件中,我都使用了管道定界符:-

private static final String COLUMNDELIMITER = "\\|";

我可以完美地读取输入文件,但对于输出文件,行如下:

abc\|123\|kk

但我希望它是:

abc|123|kk

为什么相同的分隔符在读和写时表现不同?

当我阅读一行时,我正在使用:

String[] elements = record.split(COLUMNDELIMITER); //works perfect

在写作时我正在使用:

String lineToWrite = String1 + COLUMNDELIMITER + String2 + COLUMNDELIMITER + String3 //Does not work rightly

最佳答案

String.split接受正则表达式,管道(|)有特殊含义,需要转义。这是使用反斜杠 (\) 完成的,它需要在 Java 字符串中进行转义,因此您需要在字符串文字中使用双反斜杠 (\)。但是,在连接时,您只需要 |,而不是 \|

因此,改为使用:

private static final String COLUMNDELIMITER = "|";

拆分时,使用 java.util.regex.Pattern#quote 引用它:

String[] elements = record.split(Pattern.quote(COLUMNDELIMITER));

您的连接将正常工作。

关于java - 转义序列未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48226837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com