2016-04-16 1 views
0

мне нужно, как показано ниже:Как разбить "11.11.11.12 11.11.11.11" на "" в java? "\\" и "\" не работает

[0] содержит 11.11.11.12 [1] должны содержать 11.11.11.11

Пытались: раскол ("\\\\"); // не работает

+0

Эти вопросы должны стать ссылкой для других, которые сталкиваются с подобными проблемами. В будущем более полный фрагмент кода облегчил бы ответ и облегчил бы поиск ответа для тех, кто ищет помощь в будущем. –

+0

Не знаю, буду ли я называть это дубликатом этого. В этом случае у вас есть строка, которая не может быть разделена на обратную косую черту, потому что она не содержит ('\ 11' является восьмеричной для символа TAB), но регулярное выражение' split() 'правильно. Другой вопрос заключался в неправильном расколе, и он также путал вещи, отправляя код, который не компилировался. –

+0

Я хочу, чтобы у этого вопроса был постоянный ответ defacto на ссылку. _Сниз вверх: _ Побег - это метасимвол регулярного выражения. Чтобы сделать его литералом в регулярном выражении, его нужно избегать. Механизм Regex передается '\\' означает литеральный выход. Вдобавок к этому языковой слой, такой же особый смысл, должен избегать побега, чтобы сделать его строковым литералом. '\\' теперь ссылается на '' \\\\ '' в коде Java. – sln

ответ

4

Ваша проблема не в том, чтобы избежать \ в исходной строке. Попробуйте

"11.11.11.12\\11.11.11.11".split("\\\\") 
1

Если оставить строку, как это не будет работать, потому что \ является маскирующим как в String, и регулярное выражение ... заменить \ для \\, а затем сделать регулярное выражение против "\\\\"

String txt = "11.11.11.12\\11.11.11.11"; 
    String[] sp = txt.split("\\\\"); 
    for (int i = 0; i < sp.length; i++) { 
     System.out.println(sp[i]); 
    } 
+0

Это не сработает, потому что в исходной строке нет обратной косой черты. '\ 11' интерпретируется как восьмеричное число, десятичное число 9, которое является символом TAB. Кроме того, 'replace()' не изменяет исходную строку, так что строка не имеет никакого эффекта. –

+0

Привет @AlanMoore, спасибо за комментарий ... Я понимаю ошибку, и теперь все в порядке ... –

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