2013-06-26 187 views
1

我想分析基於從文件只有一個長行「,以及[和]和{和}Java的String.split多個字符分隔符

對於如

{"ColumnTypes":"int32","fstring32","int32"],"ColumnNames":"ProductId",","ProductName","Quantity"]} 

我的實際需要從該行兩種不同陣列列類型和列名。我提前嘗試string.split("\\W"),但它無法正常工作。

請指導,謝謝。

+0

而你100%肯定這些字符不會是你的字符串文字的一部分? –

+2

所有這些大括號和括號非常不平衡。他們真的是那樣嗎?如果他們不是,這幾乎看起來像JSON,所以你可以更明智地解析你的字符串。 –

+0

您好@TimPietzcker非常感謝您的輸入。是的,它可能是JSON我不知道你能指導我如何解析它。它寫在普通的模式文本文件中。 – u449355

回答

2

你需要拆就多個\\W字符(加+),但首先剪掉從這樣的字符前面,所以你沒有得到一個空白的第一個元素:

String[] array = string.replaceAll("^\\W+", "").split("\\W+"); 
+0

當你在它的時候,從最後修剪它們,對吧? –

+1

@TimPietzcker不需要。 'split()'從結果中刪除所有尾部空白。要包含空格,必須使用第二個參數「-1」(或非常大的數字)調用split()。 – Bohemian

+0

謝謝,很高興知道。 –

1

最簡單的WA Y(與正則表達式)將允許多於一個非單詞字符匹配:

string.split("\\W+") 
+0

嘗試使用正則表示法'/ \ W + /'代替'「\\ W +」' –

+0

@JohnStrickler:在Java中? –

+0

哎呦。不,你是對的。我有一個腦屁。正在思考JavaScript –