从字符串中解析值

发布于 2024-09-06 04:41:04 字数 203 浏览 3 评论 0原文

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

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

伴梦长久 2024-09-13 04:41:04

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

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

作为 Java 字符串文字,此模式为 "\\s+"< /代码>。

如果你想得到全部 6 个数字,那么你还想在 : 上分割,所以模式是 \s+|:。作为 Java 字符串文字,它是 "\\s+|:"

参考


扫描仪

除了使用String.split之外,您还可以使用java.util.ScanneruseDelimiter< /code>与您用于分割的内容相同。优点是它有 int nextInt(),您可以使用它来提取数字作为 int (如果这确实是您感兴趣的)。

相关问题

The regex \s+ matches one or more whitespaces, so it will split into 4 values:

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

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 use java.util.Scanner, and useDelimiter the same as what you'd use to split. The advantage is that it has int nextInt() that you can use to extract the numbers as int (if that's indeed what you're interested in).

Related questions

乖乖 2024-09-13 04:41:04

请参阅模式文档 和 字符串 API

使用

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

将产生

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

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

应该产生

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

See the Pattern doc and String API.

Using

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

will yield

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

or

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

should yield

[ '12', '40', '11', '8', '5', '87' ]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文