android - 我怎样才能得到平的时间?

标签 android ping

我使用此代码来 ping 网站 google.com

    public String ping(String url) {
       String str = "";
       try {
           Process process = Runtime.getRuntime().exec(
                   "/system/bin/ping -c 1 " + url);
           BufferedReader reader = new BufferedReader(new InputStreamReader(
                   process.getInputStream()));

           int i;
           char[] buffer = new char[4096];
           StringBuffer output = new StringBuffer();

           while ((i = reader.read(buffer)) > 0)
               output.append(buffer, 0, i);
           reader.close();

           // body.append(output.toString()+"\n");
           str = output.toString();
           Log.d("str", str);
       }
       catch (IOException e) {
           // body.append("Error\n");
           e.printStackTrace();
       }
       return str;
   }

log-cat 输出如下所示:

11-12 07:23:34.028: D/str(1399): PING www.google.com (216.58.209.196) 56(84) bytes of data. 
11-12 07:23:34.028: D/str(1399): 64 bytes from bud02s22-in-f4.1e100.net (216.58.209.196): icmp_seq=1 ttl=48
**time=149 ms** 
11-12 07:23:34.028: D/str(1399): --- www.google.com ping statistics --- 
11-12 07:23:34.028: D/str(1399): 1 packets transmitted, 1 received, 0% packet loss, time 0ms 
11-12 07:23:34.028: D/str(1399): rtt min/avg/max/mdev = 149.750/149.750/149.750/0.000 ms

有人知道我怎样才能得到“time=149 ms”的值吗? 提前致谢!

最佳答案

您可以使用正则表达式:

/.*time=([0-9]+)\s(ms).*/

你想要的信息在两个捕获组中。我推荐正则表达式的原因是,如果您需要一些其他信息,您可以轻松扩展它。

sed 上面的例子(d 包含你的字符串):

prakhar@inS4n3 /tmp $ cat d| sed -r 's/.*?time=([0-9]+)\s(ms).*/\1 \2/'
149 ms

下面是如何在 java 中使用上面的代码:http://www.tutorialspoint.com/java/java_regular_expressions.htm .

关于android - 我怎样才能得到平的时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33666298/

相关文章:

java - 我怎样才能反序列化这个JSON

java - 安卓工作室 : help RecyclerView Click does not work

android - 如何使用 Retrofit 库在 Android 中下载文件?

ping - 在 MacOS 上请求 icmp_seq 超时

Linux ping广播开关

android - 正在调用 Textview onClick 而不是 Listview onItemClick。

android - Firebase 无法同时调用 equalTo() 和 startAt()

linux - 使用 nmap 更快地发现主机?

python - 并行运行多个子进程 - python 2.7

networking - 从网络中的另一台机器 Ping Docker Container