我有一个下面的字符串,我只想用','分割,还想分隔第三索引,即每行的(1005,111222)。
1002,USD,04/09/2019,1005,1,cref,,,,,,,,,
1001,USD,11/04/2018,111222,10,reftpt001,SHA,Remittance Code,BCITIT31745,,,RTGS,,,,
我在下面使用代码:
List<String> elements = new ArrayList<String>();
List<String> elements2 = new ArrayList<String>();
StringTokenizer st = new StringTokenizer((String) object);
while(st.hasMoreTokens()) {
String[] row = st.nextToken().split(",");
if (row.length == 5) {
elements.add(row[3]);
}
if (row.length == 12) {
elements2.add(row[3]);
}
}
在上面的字符串中,“ Remittance Code
”之间有一个空格,但一直拆分到remittance
之后,之后它才将代码计算为新行或字符串。请告知我如何跳过空白区域。
答案 0 :(得分:2)
这里显然不需要StringTokenizer
,并且nextToken()
调用在第一个空格处停止。相反,我建议像
output.split(",")
String[] row = ((String) object).split("\\s*,\\s*", -1);
并删除inputtypes.com,注释,JavaDoc明确表示 StringTokenizer
是一个遗留类,出于兼容性原因保留,尽管在新代码中不鼓励使用。建议寻求此功能的任何人都使用split
的{{1}}方法或java.util.regex软件包。
答案 1 :(得分:0)
首先可以拆分,然后使用修剪操作
答案 2 :(得分:0)
String stringToSplit= "1001,ZAR,11/04/2018,111222,10,reftpt001,SHA,Remittance Code,BCITIT31745,,,RTGS,,,,";
StringTokenizer tokenizer = new StringTokenizer(stringToSplit, ",");
while (tokenizer.hasMoreTokens()) { System.out.println(tokenizer.nextToken()); }
输出:
1001 ZAR 11/04/2018 111222 10 reftpt001 SHA汇款代码 BCITIT31745 RTGS
答案 3 :(得分:0)
我尝试了以下代码:
第一种方法:
String str = "1001,ZAR,11/04/2018,111222,10,reftpt001,SHA,Remittance Code,BCITIT31745";
String[] words = str.split(",");
for(String word : words) {
System.out.println(word);
}
第二种方法:
String str = "1001,ZAR,11/04/2018,111222,10,reftpt001,SHA,Remittance Code,BCITIT31745";
StringTokenizer tokenizer = new StringTokenizer(str, ",");
while(tokenizer.hasMoreTokens())
{
System.out.println(tokenizer.nextToken());
}
输出:
11/04/2018
111222
10
reftpt001
SHA
Remittance Code
BCITIT31745
希望这对您有所帮助。 :)