2013-09-17 3 views
0

У меня есть следующая строка:Разбиение строки с несколькими линиями андроида

"ISL-1027

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

т.е. имя Bluetooth и MAC-адрес

Мне нужен MAC-адрес на отдельной строке. Каков наилучший способ использования split() в этом случае?

Благодаря

+1

есть пробел между ISL-1027 и 20: 13: 02: 00: 76? – Emmanuel

+0

да есть пробел – Nic

ответ

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]); 

вне положенном:

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]); 
+0

, и он выведет две отдельные строки? Или просто второе? – Nic

+0

это отличная помощь спасибо! – Nic

+0

@Nic добро пожаловать –

0

согласования Разделить на любом свободном пространстве и включить режим DOTALL выключатель:

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

DOTALL будет работать над регулярным выражением, несмотря на наличие новых строк.

0

В зависимости от того, как формируется ваша строка, не определен, но определяется формат MAC-адреса. Я бы не пытался разбить строку и надеюсь, что индекс n будет правильным значением. Вместо этого я бы использовал выражение regulare, чтобы найти правильную позицию строки, которая соответствует формату 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; 
} 

Это всегда должно работать.

Смежные вопросы