gpt4 book ai didi

java - 可以将 Matcher.group(n) 与 Java 中的 String 进行比较吗?

转载 作者:行者123 更新时间:2023-12-01 14:47:14 24 4
gpt4 key购买 nike

我正在尝试 ping 并将 ping 摘要列在 Matcher.group(0) 中。显示的 ping 摘要结果为:

Matcher.group(0)
time=35ms
time=3ms
time=2ms
time=3ms
time=2ms
time=83ms
time=3ms
time=69ms
time=2ms
time=5ms
java.io.IOException: The pipe is being closed
BUILD SUCCESSFUL (total time: 9 seconds)

我可以/如何比较这些结果?我的意思是,我可以做这样的事情:

if(m.group(0) >= "time=66ms") {
//do something
} else if (m.group(0) < "time=66ms") {
//do something
}

最佳答案

您只想捕获毫秒数。你有类似 time=\d+ms 的地方在正则表达式中,使用 time=(\d+)ms反而。然后你可以使用matcher.group(1)获取该字符串,然后使用 Integer.parseInt将其作为 int 获取。

int ms = Integer.parseInt(matcher.group(1));
if (ms >= 66) {
// do something
}
else {
// do something else
}

请注意,您不需要 else if ,只是一个else很好。如果 int 不是 >= someValue ,那么它必须是 < someValue -- 您不需要检查代码中的同义反复。顺便说一句,我会将数字 66 放入某处的常量中:

private static final int TIMEOUT_THRESHOLD = 66; // or some better name
...
int ms = Integer.parseInt(matcher.group(1));
if (ms >= TIMEOUT_THRESHOLD) ...

这样,以后如果需要的话,就可以很容易地更改它,而无需在代码中到处搜索。

关于java - 可以将 Matcher.group(n) 与 Java 中的 String 进行比较吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15301299/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com