2012-10-16 55 views
0

我有以下格式的字符串:Java的String.split不工作

CT-d0712728-867d-4cc4-bd0c-b2a679b8385f~#$~2012-10-16 02:13:27 PM 

我可以使用String.split("~#$~")或我使用的StringTokenizer?在上面的字符串中只有2個參數,這就是爲什麼我試圖使用String.Split(「〜#$〜」),但它似乎不工作。

+0

類似的問題。 http://stackoverflow.com/questions/8551489/how-to-split-the-string-using-this-special-character-in-java – Amareswar

+0

當你嘗試它時發生了什麼?你是否將結果捕獲到一個String []中? – Makoto

回答

7

$special character在正則表達式中(它表示「行結束」)。爲了讓簡單的文字,你需要逃避它,例如與

  • "\\$"
  • "[$]"
  • 或使用報價"\\Q$\\E"
1

由於split()方法採用paremeters如Regex,和$是特殊元字符在Regex。你需要躲避$標誌: -

System.out.println(str.split("~#\\$~")[0]); 
    System.out.println(str.split("~#\\$~")[1]); 
0

嘗試

String s = "CT-d0712728-867d-4cc4-bd0c-b2a679b8385f~#$~2012-10-16 02:13:27 PM"; 

Arrays.toString(s.split("~#\\$~")) 
0
String str = "CT-d0712728-867d-4cc4-bd0c-b2a679b8385f~#$~2012-10-16 02:13:27 PM"; 
String[] pieces = str.split("~#\\$~"); 
0

,你可以做到這一點使用String.split()。不需要使用StringTokenizer。請參閱下面的示例。

String s="CT-d0712728-867d-4cc4-bd0c-b2a679b8385f~#$~2012-10-16 02:13:27 PM"; 
     String test[]=s.split("\\~\\#\\$\\~"); 
     System.out.println(test[0]); 
     System.out.println(test[1]); 

讓我知道你我有什麼問題。