我有以下字符串:
“ISL-1027
20:13:02:22:00:76"
即。蓝牙名称和MAC地址
我需要在单独的字符串上使用MAC地址。 在这种情况下使用split()的最佳方法是什么?
由于
答案 0 :(得分:1)
split("\n")
您可以使用此功能。"\n"
将成为此处的分隔符。
String str = "ISL-1027" +
"\n" +
"20:13:02:22:00:76";
String[] arr= str.split("\n");
System.out.println("Bluetooth Name: "+arr[0]);
System.out.println("MAC address: "+arr[1]);
Out put:
Bluetooth Name: ISL-1027
MAC address: 20:13:02:22:00:76
如果您的输入字符串如此ISL-1027 20:13:02:22:00:76
(用空格分隔),请使用
String str = "ISL-1027 20:13:02:22:00:76";
String[] arr= str.split(" ");
System.out.println("Bluetooth Name: "+arr[0]);
System.out.println("MAC address: "+arr[1]);
答案 1 :(得分:0)
答案 2 :(得分:0)
根据您的字符串格式化的方式不确定,但定义了mac-address的格式。我不会尝试拆分字符串,并希望索引n是正确的值。 相反,我会使用regularre表达式来找到与mac-address格式匹配的字符串的正确位置。
这是一个小例子(未经测试):
String input = "ISL-1027
20:13:02:22:00:76"
Pattern macAddrPattern = Pattern.compile("[0-9a-fA-F]{2}\:[0-9a-fA-F]{2}\:[0-9a-fA-F]{2}\:[0-9a-fA-F]{2}\:[0-9a-fA-F]{2}\:[0-9a-fA-F]{2}\");
String macAdr = parseMacAddr(input);
public String parseMacAddr(String value) {
Matcher m = macAddrPattern.matcher(value);
if (m.matches()) {
return value.substring(m.start(),m.end());
}
return null;
}
这应该始终有效。