【发布时间】:2016-12-11 13:00:17
【问题描述】:
我有一个任务将列从 SQL 语句中拆分出来。这对我来说很有效,在“,”上进行了简单的 Java 拆分。但是现在我在列内有额外的逗号问题。 我想这个问题的答案很简单,但我不会想到。
例子:
来源:
"Col_A BIGINT , COL_B TIMESTAMP , COL_C DECIMAL(10,30) , COL_D VARCHAR(20)"
我想要的输出:
Array[0] = Col_A BIGINT
Array[1] = COL_B TIMESTAMP
Array[2] = COL_C DECIMAL(10,30)
Array[3] = COL_D VARCHAR(20)
真实的(和明显的)输出:
Array[0] = Col_A BIGINT
Array[1] = COL_B TIMESTAMP
Array[2] = COL_C DECIMAL(10
Array[3] = 30)
Array[4] = COL_D VARCHAR(20)
明显的问题是两位小数之间的逗号 (COL_C)。
现在我问你是否有一个很好的解决方案来解决这个问题。我真的很想使用单个拆分来接收不同的列。但是如何避免在十进制描述中出现错误的拆分。
我希望你们能理解我的问题。英语不是我的母语。
【问题讨论】:
-
,、split(" , ")周围有空格。否则,请使用split("\\s*,\\s*(?![^)]*\\))")(这是一种解决方法,稍后会因某些输入而失败,最好是使用 matching 方法)。 -
你能给出你用于这个输出的代码吗?
-
空间对我来说太明显了。我的原始语句是由 DB2-Look 创建的。空间应该每次都在那里。我试试看,谢谢回复