怎么做同城购物网站,做企业网站的尺寸是多少钱,免费ppt生成器,各类网站导航目标#xff1a; 已知多个字符串#xff0c;形如#xff1a;“64 bytes from 39.156.66.18: icmp_seq1 ttl50 time29.7 ms” 获取 总Ping时间(XX:XX:XX格式)#xff0c;最小时间#xff0c;最大时间#xff0c;平均时间#xff0c;丢包率#xff0c;已发送个数#xf…目标 已知多个字符串形如“64 bytes from 39.156.66.18: icmp_seq1 ttl50 time29.7 ms” 获取 总Ping时间(XX:XX:XX格式)最小时间最大时间平均时间丢包率已发送个数已接收个数 示例程序
import java.util.regex.Matcher;
import java.util.regex.Pattern;private class PingThread extends Thread {// ...// 使用正则表达式匹配从ping输出中提取特定值private static final Pattern PING_PATTERN Pattern.compile(time(\\d\\.\\d) ms);private static final Pattern PACKET_LOSS_PATTERN Pattern.compile((\\d)% packet loss);private static final Pattern PACKETS_SENT_PATTERN Pattern.compile((\\d) packets transmitted);private static final Pattern PACKETS_RECEIVED_PATTERN Pattern.compile((\\d) packets received);Overridepublic void run() {super.run();// ... int packetsSent 0;int packetsReceived 0;float packetLoss 0.0f;long minPingTime Long.MAX_VALUE;long maxPingTime Long.MIN_VALUE;long totalPingTime 0;try {// ... // 读取标准输入流while ((line successReader.readLine()) ! null) {System.out.println(Message: line); // 在控制台看一下消息Matcher packetLossMatcher PACKET_LOSS_PATTERN.matcher(line);if (packetLossMatcher.find()) {packetLoss Float.parseFloat(packetLossMatcher.group(1));}Matcher packetsSentMatcher PACKETS_SENT_PATTERN.matcher(line);if (packetsSentMatcher.find()) {packetsSent Integer.parseInt(packetsSentMatcher.group(1));}Matcher packetsReceivedMatcher PACKETS_RECEIVED_PATTERN.matcher(line);if (packetsReceivedMatcher.find()) {packetsReceived Integer.parseInt(packetsReceivedMatcher.group(1));}Matcher pingMatcher PING_PATTERN.matcher(line);while (pingMatcher.find()) {float pingTime Float.parseFloat(pingMatcher.group(1));totalPingTime pingTime;minPingTime Math.min(minPingTime, (long) pingTime);maxPingTime Math.max(maxPingTime, (long) pingTime);}// ...}// 计算平均Ping时间float avgPingTime totalPingTime / (float) packetsReceived;// 如果需要可以把ms值转化为 XX:XX:XX 格式.// 例如:String formattedMinPingTime formatTime(minPingTime);String formattedMaxPingTime formatTime(maxPingTime);String formattedAvgPingTime formatTime((long) avgPingTime);// ...} catch (IOException | InterruptedException e) {// 处理异常e.printStackTrace();} finally {// ...}}// ms值转换为XX:XX:XX格式private String formatTime(long milliseconds) {long seconds milliseconds / 1000;long minutes seconds / 60;long hours minutes / 60;return String.format(%02d:%02d:%02d, hours, minutes % 60, seconds % 60);}
}