2009-06-30 114 views
0

我有以下字符串與單獨的分隔符需要解析出來,我現在正在運行到一堵牆。Java - 解析多分隔/維字符串

例如

類別1 --- 2類;亞組1 ||子組2 ---亞組1;值1 ||值2 ---值3

我想重新安排成如下分組:

類別1;子組1; VALUE1;子組2;值2; 2類;亞組1; VALUE1

「---」分隔符分隔類別及其值。 「||」分隔符分隔屬於同一類別的字段 「;」分隔符分隔字段類型(類別;子組;值) 可以有N個類別,它們可以有N個子組。
每個值都與其子組1關聯1:1

第一次通過工作正常,但一旦我擊中第2類,一切都消失。我知道我錯過了一些明顯的東西,但我現在有點朦朧,Java不是我的第一語言。以下是我迄今爲止(沒有分隔符)

StringBuilder result = new StringBuilder(); 
String categoryArray[] = category.split("---"); 
String subGroupArray[] = subgroup.split("---"); 
String valueArray[] = value.split("---"); 

for (int counter=0; counter<categoryArray.length;counter++){ 


    String categoryArray2[] = categoryArray[counter].split("\\|\\|"); 
    String subGroupArray2[] = subGroupArray[counter].split("\\|\\|"); 
    String valueArray2[] = valueArray[counter].split("\\|\\|"); 

     result.append(categoryArray[counter].trim()); 
    for (int counter2=0; counter2<subGroupArray2.length;counter2++){ 

     result.append(subGroupArray2[counter2].trim()); 
     result.append(valueArray2[counter2].trim()); 

    } 
    result.append("||"); 

} 
return result; 



任何幫助或優化的方法肯定會感激!

+0

類別,子組和值的實際值是多少? – stevedbrown 2009-06-30 22:57:38

+0

我無法理解類別,子組和值之間的預期關係以及您的符號約定在第一個字符串中如何表示它們。 你能澄清你的問題嗎? – 2009-07-01 00:47:55

回答

0

你的算法基本上是正確的。問題是String.split()與正則表達式一起作爲輸入,而不是字符串。所以「||」並不意味着字符串「||」,它意味着任何正則表達式的含義。所以替換此:

subGroupArray[counter].split("||"); 

有了:

subGroupArray[counter].split("\\|\\|"); 

,它應該工作。

0

從寫入一些junit測試開始,給出輸入爲字符串,以及您期望的輸出結構。將整個測試課程粘貼到此處,以及您的失敗實施。