我有以下格式的字符串:Java的String.split不工作
CT-d0712728-867d-4cc4-bd0c-b2a679b8385f~#$~2012-10-16 02:13:27 PM
我可以使用String.split("~#$~")
或我使用的StringTokenizer?在上面的字符串中只有2個參數,這就是爲什麼我試圖使用String.Split(「〜#$〜」),但它似乎不工作。
我有以下格式的字符串:Java的String.split不工作
CT-d0712728-867d-4cc4-bd0c-b2a679b8385f~#$~2012-10-16 02:13:27 PM
我可以使用String.split("~#$~")
或我使用的StringTokenizer?在上面的字符串中只有2個參數,這就是爲什麼我試圖使用String.Split(「〜#$〜」),但它似乎不工作。
$
是special character在正則表達式中(它表示「行結束」)。爲了讓簡單的文字,你需要逃避它,例如與
"\\$"
,"[$]"
"\\Q$\\E"
。由於split()
方法採用paremeters如Regex
,和$
是特殊元字符在Regex
。你需要躲避$
標誌: -
System.out.println(str.split("~#\\$~")[0]);
System.out.println(str.split("~#\\$~")[1]);
嘗試
String s = "CT-d0712728-867d-4cc4-bd0c-b2a679b8385f~#$~2012-10-16 02:13:27 PM";
Arrays.toString(s.split("~#\\$~"))
String str = "CT-d0712728-867d-4cc4-bd0c-b2a679b8385f~#$~2012-10-16 02:13:27 PM";
String[] pieces = str.split("~#\\$~");
,你可以做到這一點使用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]);
讓我知道你我有什麼問題。
類似的問題。 http://stackoverflow.com/questions/8551489/how-to-split-the-string-using-this-special-character-in-java – Amareswar
當你嘗試它時發生了什麼?你是否將結果捕獲到一個String []中? – Makoto