Когда я разделяю строку "1|2|3|4"
с помощью String.split("|")
, я получаю 8 элементов в массиве вместо 4. Если я использую "\\|"
, результат будет правильным. Я предполагаю, что это что-то делать с регулярными выражениями. Может ли кто-нибудь объяснить это?Разбиение строки в Java
ответ
Вы правы. |
- специальный символ для чередования. Регулярное выражение |
означает «пустая строка или пустая строка». Таким образом, он будет разбит на все пустые строки, в результате получится 1 элемент для каждого символа в строке. Убегая его \|
, сделайте его нормальным персонажем.
Спасибо за ответ .. is & также является особым символом? –
@why: Нет, это не так. См. Http://download-llnw.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html. Вы можете использовать '\ Q ... \ E', чтобы убедиться, что' ... 'не будут интерпретироваться как специальные символы. – kennytm
@ почему я должен сказать вам мое имя: http://www.regular-expressions.info/reference.html – ColinD
|
в синтаксисе регулярных выражений Java OR
, в основном расщепление 1|2|3|4
с |
равно говорить String#split()
к «разделить эту строку между пустыми или пустым), что означает, что он расщепляет после каждого символа вы имеете в исходной строке.
- 1. Разбиение строки в Java
- 2. Разбиение строки в Java
- 3. Java Разбиение строки
- 4. Разбиение строки пробелами (java)
- 5. Разбиение строки с Java
- 6. Разбиение строки Java на..
- 7. Разбиение строки в java дважды
- 8. Разбиение командной строки на Java
- 9. Разбиение строки на * на Java?
- 10. Разбиение строки в Java в массив строк
- 11. Разбиение строки в определенном месте в java
- 12. Разбиение строки и шаблон соответствия в Java
- 13. Разбиение строки тегов html в Blackberry Java
- 14. Разбиение строки с помощью Regex в Java
- 15. Разбиение строки между двумя символами в Java
- 16. Разбиение строки в java на вкладке
- 17. Разбиение строки, содержащей url/link в java
- 18. Разбиение строки в случае новой строки
- 19. Разбиение строки
- 20. Разбиение строки
- 21. Разбиение строки на строки
- 22. Java: разбиение строки на заданную длину
- 23. Разбиение строки в Скале
- 24. Разбиение строки в javascript
- 25. Разбиение строки в массиве:
- 26. Разбиение строки в JS
- 27. Разбиение строки в список
- 28. Разбиение строки в итераторе
- 29. Разбиение строки в PHP
- 30. Разбиение строки в Haskell
Просто указывая - количество времени, которое эта путаница занимает, вероятно, будет стоить вам больше, чем вы сэкономите, используя регулярные выражения (только для кодирования проклятой вещи) на протяжении всей вашей карьеры, если вы не будете делать много сценариев оболочки. –
Я никогда не собирался использовать регулярные выражения .. чертовски API использует автоматически .. что я должен делать тогда? –
К сожалению, метод 'String.split()' всегда использует регулярные выражения. Однако есть более гибкие API. – ColinD