2013-06-26 137 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 –