字符串 -
Bank of India,1.19E+13,06-02-2015,"BY CLG/237336/560015089/CAB,IND",140980,C,,140980,2,NA,N
我想根据逗号(,)拆分行,但不要在字符串中考虑逗号。 我希望输出数组如:
Bank of India
1.19E+13,06-02-2015
BY CLG/237336/560015089/CAB,IND
140980
C
140980
2
NA
N
但是在字符串BY CLG/237336/560015089/CAB,IND
逗号问题中;有没有人面临这样的问题?
一些字符串,例如 -
State Bank of India,30902918138,01-06-2015,DEP TFR TRF FROM 3199860044304 RTGS UTIBR52015060100038810 MOHAN SYNTHETICS,2348386,C,-79046734.87,2348386,6,F04,Y
Bank of India,1.19E+13,06-01-2015,RTGS/CHOPRA ENTERPRISES,330963,C,,330963,1,NA,N
Bank of India,1.19E+13,06-02-2015,"BY CLG/237336/560015089/CAB,IND",140980,C,,140980,2,NA,N
答案 0 :(得分:1)
如果您可以使用Apache Commons,那么您正在寻找StringUtils中的方法split,例如:
String[] myString =StringUtils.split("string 1, string2", "," );
将提供的文本拆分为数组,指定分隔符。这是 使用StringTokenizer的替代方法。
分隔符不包含在返回的String数组中。邻 分隔符被视为一个分隔符。为了更好地控制 split使用StrTokenizer类。
null输入String返回null。 nullseparatorChars拆分 空格。
StringUtils.split(null, *) = null StringUtils.split("", *) = [] StringUtils.split("abc def", null) = ["abc", "def"] StringUtils.split("abc def", " ") = ["abc", "def"] StringUtils.split("abc def", " ") = ["abc", "def"] StringUtils.split("ab:cd:ef", ":") = ["ab", "cd", "ef"]
答案 1 :(得分:1)
如果您不想仅使用外部库,可以使用Regex定义部分应该在哪里并获取它们。
我们假设您的Sting可以在逗号之间包含空字段。
([\w ]+),+(.*?),+"(.*?)",+(.+?),+(\w),+(\d+),+(\d),+(\w+),+(\w)
请参阅Regex101上的演示。