2016-02-04 137 views
-1

我想通過以下方式創建管道分隔字符串。創建管道分隔字符串

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

結果是:

ABC\ DEF\ GHI 

預期的結果是:

ABC|DEF|GHI 

正是我甚至雙斜線逃脫之後做錯了什麼。

+0

爲什麼你需要逃避'| '?什麼是'str [0]'? – user1803551

+0

str [0]是任何字符串。 –

+2

然後你是不一致的。顯示產生你發佈的輸出的確切代碼,而不是「任何字符串」。 – user1803551

回答

3

這裏沒有必要使用espace序列。簡單做:

strBuf.append("|"); 

如:

String abc = "ABC"; 
String def = "DEF"; 
String ghi = "GHI"; 
StringBuilder sb = new StringBuilder(); 
sb.append(abc); 
sb.append("|"); 
sb.append(def); 
sb.append("|"); 
sb.append(ghi); 
System.out.println(sb.toString()); //prints ABC|DEF|GHI 
+0

我正在使用StringBuffer,它會有所作爲嗎? –

+3

@UkkarshSaraf否,但除非您需要它是線程安全的,否則使用'StringBuilder'。 – user1803551

0

您是否試過不逃避|角色?

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

當與StringBuffer一起使用時,它將輸出作爲'ABC DEF GHI'輸出 –

+0

@UkkarshSaraf如果管道字符被轉換/顯示爲空格,則發生在其他地方。 'append(「|」)'*將*插入一個管道字符到字符串中。 – Andreas

0

如果您使用的是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());