问题描述
我有一个名为Product
表,其中包含名为PriceWithDescription
列。
上面提到的该表的列包含如下数据。
1> pricevalue : One,and more ,pricevalue : two
我想分割值,以便得到如下结果。
1> pricevalue : One,and more
2> pricevalue : two
当我使用“,”分割数据时,它给我的结果如下。
1> pricevalue : One
2> and more
3> pricevalue : two
因此,当值本身包含逗号作为值时,分割值的最佳方法是什么。
谢谢
1楼
考虑重新设计表结构,使其更适合存储键值对。
但是你可以使用正前瞻:只需要拆分是否有另一种:
来了,而且不能有任何,
在此之前。
这导致类似:
,(?=[^,]*?:)
Java代码:
String s = "pricevalue : One,and more ,pricevalue : two,something else : abc , def";
String[] ss = s.split(",(?=[^,]*?:)");
for(String si : ss) {
System.out.println(si);
}
输出:
pricevalue : One,and more
pricevalue : two
something else : abc , def
2楼
您可能想使用带有正则表达式的正则表达式使用String#split
来获取pricevalue
: ,(?=pricevalue)
String str = "pricevalue : One,and more ,pricevalue : two";
String[] splitted = str.split(",(?=pricevalue)");
for (String s : splitted) {
System.out.println(s);
}
打印
pricevalue : One,and more
pricevalue : two
3楼
这是您可以做的。
1)使用此代码'something.split("pricevalue :")'
这将返回三个元素。
2)忽略第一个元素。
3)对于不是最后一个元素的所有元素,请删除字符串末尾的逗号。
你会得到的。
1> pricevalue : One,and more
2> pricevalue : two