從一臺服務器,我得到以下形式的字符串:Java的字符串解析沒有正則表達式
String x = "fixedWord1:var1 data[[fixedWord2:var2 fixedWord3:var3 data[[fixedWord4] [fixedWord5=var5 fixedWord6=var6 fixedWord7=var7]]] , [fixedWord2:var2 fixedWord3:var3 data[[fixedWord4][fixedWord5=var5 fixedWord6=var6 fixedWord7=var7]]]] fixedWord8:fixedWord8";
(僅適用於空間劃分字-VAR對團體) 後來,我想將它們存儲在一個Hashmap
,如myHashMap.put(fixedWord1, var1);
等。
問題:
裏面的第一"data[......]"
- 標籤,其他"data[..........]"
標籤都有效的數量是可變的,我不知道該字符串提前長度。
我不知道如何處理這樣的字符串,而不是採取String.split()
,這是我們的任務給予者(大學)不鼓勵。
我搜查了互聯網,找不到解釋這些事情的適當網站。
如果有經驗的人可以給我一些鏈接到網站或像「圖示計劃」,這樣我就可以編碼一些東西,這將是非常有幫助的。
編輯: 得到的字符串錯誤(題外話,開始「請不要誹謗」 題外話端),正確的字符串(改變fixedWord7 = var7 ---到---> fixedWord7 = [var7]):
String x = "fixedWord1:var1 data[[fixedWord2:var2 fixedWord3:var3 data[[fixedWord4] [fixedWord5=var5 fixedWord6=var6 fixedWord7=[var7]]]] , [fixedWord2:var2 fixedWord3:var3 data[[fixedWord4][fixedWord5=var5 fixedWord6=var6 fixedWord7=[var7]]]]] fixedWord8:fixedWord8";
您可以按照您的意願做一個遞歸算法。 – thatidiotguy
你必須在java中執行此操作,或者可以使用sed/awk,爲什麼不能使用正則表達式? – Grammin
也許你的大學會允許使用'Pattern'和'Matcher'類,甚至是'Scanner'? :)然而,它基於正則表達式。 –