2012-10-23 80 views
1

所以我試圖分裂字符串String.split未如預期

String[] tokens = coded_string.split("\\)|\\(|\\,|\\s+"); 

操作,所以如果編碼字符串students = load(classlist.csv) 所有令牌都很好

token[0] = "students" 
token[1] = "=" 
token[2] = "load" 
token[3] = "classlist.csv" 

但當串students = load (classlist.csv)括號之間的空格我得到空的令牌爲什麼是這樣的,我該如何解決它?

token[0] = "students" 
token[1] = "=" 
token[2] = "load" 
token[3] = "" 

回答

3

因爲你必須在連續兩個分隔符,一個空的空間,其次是一個開放的括號,它返回的「無」就是他們之間爲空字符串匹配。您可以使用字符類而不是交替來匹配整個可能的分隔符字符塊。您尚未說明您的實際要求,因此很難知道這對所有投入是否嚴格正確。

String[] tokens = coded_string.split("[)(,\\s]+"); 
+0

它的工作原理,我將給予好評你,但我沒有信譽,感謝您的幫助。 – RandomGuy

0

coded_string.split("(\\)|\\(|\\s+)+")將正常工作

+0

不是當你連續有兩個分隔符時,比如Affe說它創建了一個我試圖避免的空白標記。 – RandomGuy

+0

最後的'+'連接了分隔符,所以你不會得到空的標記。 – 2012-10-23 02:05:13