在android中拆分多行的字符串

时间:2013-09-17 17:00:40

标签: java android eclipse

我有以下字符串:

“ISL-1027

20:13:02:22:00:76"

即。蓝牙名称和MAC地址

我需要在单独的字符串上使用MAC地址。 在这种情况下使用split()的最佳方法是什么?

由于

3 个答案:

答案 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)

在任何空格上拆分匹配并包含DOTALL模式开关:

split("(?s)\\s+");

尽管存在换行符,DOTALL仍会使正则表达式工作。

答案 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;
}

这应该始终有效。