【发布时间】:2015-03-29 02:01:11
【问题描述】:
我对正则表达式的东西很糟糕。我的数据如下所示:
abc,42,4/04/1992,,,something, ,2/05/2007,dkwit,,334,,,
数据本身的含义有点无关紧要,关键是它是逗号分隔的,你可以将逗号之间的数据称为“列”,并且某些列可能是空格或空的(稍后,空格列和空列被忽略)。我需要根据逗号分隔符将字符串拆分为数组。我试过了
new StringTokenizer(string, ",")
但这会跳过列之间数据为空的标记,所以我尝试使用string.split(",")。这样做的问题是它会跳过上面数据中的最后三列。您可以说在“334”之后,它的行为类似于 StringTokenizer,跳过其中没有空格或没有数据的列。
我可以让string.split( ) 的行为方式使其继续拆分直到遇到行尾,还是有更好的方法来做到这一点?
【问题讨论】:
-
当到达行尾时你想做什么?值中有什么逗号?它是怎么逃出来的?
-
@fge 本质上,我想在逗号或行尾分割。列内永远不会有逗号。换句话说,数据永远不会包含逗号作为实际值的一部分。我们可以假设这一点。
标签: java regex string delimiter stringtokenizer