从字符串中解析值
您将如何解析字符串中的值,例如下面的字符串?
12:40:11 8 5 87
数字之间的差距各不相同,第一个值是时间。以下正则表达式不会分隔时间部分:
str.split("\\w.([:]).")
有什么建议吗?
How would you parse the values in a string, such as the one below?
12:40:11 8 5 87
The gap between numbers varies, and the first value is a time. The following regular expression does not separate the time component:
str.split("\\w.([:]).")
Any suggestions?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
正则表达式
\s+
匹配一个或多个空格,因此它将分割
为 4 个值:作为 Java 字符串文字,此模式为
"\\s+"< /代码>。
如果你想得到全部 6 个数字,那么你还想在
:
上分割,所以模式是\s+|:
。作为 Java 字符串文字,它是"\\s+|:"
。参考
在
扫描仪
上除了使用
String.split
之外,您还可以使用java.util.Scanner
和useDelimiter< /code>
与您用于
分割
的内容相同。优点是它有int nextInt()
,您可以使用它来提取数字作为int
(如果这确实是您感兴趣的)。相关问题
The regex
\s+
matches one or more whitespaces, so it willsplit
into 4 values:As a Java string literal, this pattern is
"\\s+"
.If you want to get all 6 numbers, then you also want to split on
:
, so the pattern is\s+|:
. As a Java string literal this is"\\s+|:"
.References
On
Scanner
Instead of using
String.split
, you can also usejava.util.Scanner
, anduseDelimiter
the same as what you'd use tosplit
. The advantage is that it hasint nextInt()
that you can use to extract the numbers asint
(if that's indeed what you're interested in).Related questions
请参阅模式文档 和 字符串 API。
使用
将产生
或
应该产生
See the Pattern doc and String API.
Using
will yield
or
should yield