我正在编写一个Java控制台程序,它会查找给定mac地址的供应商。
通过运行时使用'arp -a'我收到一个字符串,如:
"172.17.7.144 44-94-fc-68-b7-03 dynamic"
我很难将字符串拆分为只检索mac地址,IP地址和mac之间的间距会根据长度而变化,因此通过空格拆分似乎不起作用。
从这样的字符串中检索数据的最佳方法是什么?
答案 0 :(得分:3)
就像@Andrea在评论中提到的那样,您可以轻松使用:
String str = "172.17.7.144 44-94-fc-68-b7-03 dynamic";
String[] spl = str.split("\\s+");
<强>输出强>
172.17.7.144
44-94-fc-68-b7-03
dynamic
另一种解决方案,如果你只想获得Mac地址,你可以使用模式(看一下模式What is a regular expression for a MAC Address?),如下所示:
Pattern pat = Pattern.compile("([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})");
Matcher mat = pat.matcher(str);
while (mat.find()) {
System.out.println(mat.group());
}