Java 创建管道分隔字符串

Java 创建管道分隔字符串,java,Java,我试图通过以下方式创建管道分隔字符串 strBuf.append(str[0]); strBuf.append("\\|"); 结果是: ABC\ DEF\ GHI 预期结果是: ABC|DEF|GHI 即使用双斜杠转义,我到底做错了什么。您是否尝试过不转义|字符 strBuf.append(str[0]); strBuf.append("|"); 这里不需要使用espace序列。简单做法: strBuf.append("|"); 例如: 如果您使用的是java 8: String[]

我试图通过以下方式创建管道分隔字符串

strBuf.append(str[0]);
strBuf.append("\\|");
结果是:

ABC\ DEF\ GHI
预期结果是:

ABC|DEF|GHI

即使用双斜杠转义,我到底做错了什么。

您是否尝试过不转义
|
字符

strBuf.append(str[0]);
strBuf.append("|");

这里不需要使用espace序列。简单做法:

strBuf.append("|");
例如:


如果您使用的是java 8:

String[] s={"ABC","DEF","GHI"};
System.out.println(String.join("|",s));
适用于JAVA 7

String abc = "ABC";
        String def = "DEF";
        String ghi = "GHI";
        StringBuilder strBuf=new StringBuilder();
        strBuf.append(abc);
        strBuf.append("|");
        strBuf.append(def);
        strBuf.append("|");
        strBuf.append(ghi);
        System.out.println(strBuf.toString());

你为什么要逃避
|
?什么是
str[0]
?str[0]是任意字符串。那么您就不一致了。显示生成您发布的输出的确切代码,而不是“任何字符串”。
append(\\\\\”)
将附加一个\和一个|,这意味着它将生成
ABC\\\\\\\\\\\\\GHI
,而不是显示的带有空格的输出。确切的代码在哪里?它以
ABC DEF GHI
的形式给出输出,与…一起使用时StringBuffer@UtkarshSaraf如果管道字符转换/显示为空格,则在其他位置会发生这种情况。
追加(“|”)将在字符串中插入一个管道字符。我使用的是StringBuffer,它会有什么不同吗?@UtkarshSaraf否,但除非需要线程安全,否则请使用
StringBuilder
String abc = "ABC";
        String def = "DEF";
        String ghi = "GHI";
        StringBuilder strBuf=new StringBuilder();
        strBuf.append(abc);
        strBuf.append("|");
        strBuf.append(def);
        strBuf.append("|");
        strBuf.append(ghi);
        System.out.println(strBuf.toString());