【发布时间】:2019-08-30 10:19:15
【问题描述】:
我有一个输入流,它的字段由 tab(\t) 分隔 看起来像这样
String str = " acc123\tdpId123\t2011-01-01\t2022-01-01\thello@xyz.com\tIN\t1233\tSOMETHING ";
当我使用str = str.trim(); 和
strArray = str.split("\t", -1);
strArray=["acc123","dpId123","2011-01-01","2022-01-01","hello@xyz.com","IN","1233","SOMETHING"] will give size as 8
但输入记录的最后一个字段不是必须的,可以跳过。
所以输入也可以是这样的。
String str1 = "acc123\tdpId123\t2011-01-01\t2022-01-01\thello@xyz.com\tIN\t1233\t";
但在这种情况下,最后一个字段应该为空,但是当我在修剪和拆分后使用此字符串时,我的大小为 7
str1 = str1.trim();
strArray = str1.split("\t", -1);
strArray=["acc123","dpId123","2011-01-01","2022-01-01","hello@xyz.com","IN","1233"]will give size as 7
但我想要
strArray=["acc123","dpId123","2011-01-01","2022-01-01","hello@xyz.com","IN","1233",""]
我怎样才能避免这种情况?
【问题讨论】:
-
对于您提供给我们的两个示例字符串,您希望看到的实际输出是什么,以及决定您希望看到什么的规则是什么?
-
为什么要修剪没有前导或尾随空格的字符串?只是不要修剪它!
-
更新描述
-
@AjahnCharles 我可能会在字符串的开头和结尾出现空格,这是意料之中的。我也改变了第一个例子。
-
可以先分割再修剪吗?