use*_*514 10 java string string-split stringtokenizer
我试图将一个字符串分成29个令牌..... stringtokenizer不会返回null令牌.我试过string.split,但我相信我做错了什么:
String [] strings = line.split(",", 29);
Run Code Online (Sandbox Code Playgroud)
样本输入:
10150,15:58,23:58,16:00,00:00,15:55,23:55,15:58,00:01,16:03,23:58,,,,,16:00,23:22,15:54,00:03,15:59,23:56,16:05,23:59,15:55,00:01,,,,
10155,,,,,,,,,,,07:30,13:27,07:25,13:45,,,,,,,,,,,07:13,14:37,08:01,15:23
10160,10:00,16:02,09:55,16:03,10:06,15:58,09:48,16:07,09:55,16:00,,,,,09:49,15:38,10:02,16:04,10:00,16:00,09:58,16:01,09:57,15:58,,,,
Run Code Online (Sandbox Code Playgroud)
pol*_*nts 16
如果您希望保留尾随空字符串,但您不想为最大值提供幻数,请使用负限制:
line.split(",", -1)
Run Code Online (Sandbox Code Playgroud)
如果line.equals("a,,c")
,那么line.split(",", -1)[1].isEmpty()
; 不是null
.这是因为何时","
是分隔符,然后",,"
在两个分隔符之间有一个空字符串,而不是null
.
使用上面的解释,请考虑以下示例: ",,"
也许你会认为","
, null
和","
.
实际结果是","
, ""
和","
null
返回的数组中没有空字符串split
,那么你必须手动扫描数组并替换它们null
.不过,我不确定为什么s == null
会比这更好s.isEmpty()
.