6

您将如何解析字符串中的值,例如下面的字符串?

12:40:11  8    5                  87

数字之间的差距各不相同,第一个值是时间。以下正则表达式不分隔时间组件:

str.split("\\w.([:]).")

有什么建议么?

4

2 回答 2

9

正则表达式\s+匹配一个或多个空格,因此它将split变成 4 个值:

"12:40:11", "8", "5", "87"

作为 Java 字符串文字,此模式是"\\s+".

如果你想得到所有 6 个数字,那么你也想在 上拆分:,所以模式是\s+|:。作为 Java 字符串文字,这是"\\s+|:".

参考


Scanner

除了使用之外String.split,您还可以使用java.util.Scanner, 并且useDelimiter与您使用的相同split。优点是int nextInt()您可以使用它来提取数字int(如果这确实是您感兴趣的)。

相关问题

于 2010-06-22T01:23:48.410 回答
2

请参阅模式文档字符串 API

使用

str.split("\\s+");

将产生

[ '12:40:11', '8', '5', '87' ]

或者

str.split("\\s+|:");

应该产生

[ '12', '40', '11', '8', '5', '87' ]
于 2010-06-22T01:24:56.317 回答