如何解析字符串中的值,例如下面的值?
12:40:11 8 5 87
数字之间的差距各不相同,第一个值是时间。以下正则表达式不会分隔时间组件:
str.split("\\w.([:]).")
有什么建议吗?
答案 0 :(得分:9)
正则表达式\s+
匹配一个或多个空格,因此它会split
为4个值:
"12:40:11", "8", "5", "87"
作为Java字符串文字,此模式为"\\s+"
。
如果您想获得所有6个号码,那么您还希望在:
上进行拆分,因此模式为\s+|:
。作为Java字符串文字,这是"\\s+|:"
。
Scanner
您可以使用java.util.Scanner
和useDelimiter
,而不是使用String.split
,而不是split
。优点是它有int nextInt()
可以用来将数字提取为int
(如果这确实是你感兴趣的话)。
答案 1 :(得分:2)
使用
str.split("\\s+");
将产生
[ '12:40:11', '8', '5', '87' ]
或
str.split("\\s+|:");
应该产生
[ '12', '40', '11', '8', '5', '87' ]