Разделите строку на две через дефис - PullRequest
3 голосов
/ 11 февраля 2011

Я получаю строковую переменную из запроса.

String issueField = request.getParameter("issueno");

Это может иметь или не иметь дефис в середине.Я хочу иметь возможность проходить через строку и делить строку, когда виден дефис.

Ответы [ 4 ]

12 голосов
/ 11 февраля 2011

Используйте String # split:

String[] parts = issueField.split("-");

Затем вы можете использовать parts[0] для получения первой части, parts[1] для второй, ...

2 голосов
/ 11 февраля 2011
1 голос
/ 11 февраля 2011

Несмотря на то, что String.split выполнит эту работу, класс Splitter в Guava не отбрасывает без остатка конечные разделители, и его API не заставляет использовать регулярное выражение, когда оно не нужно:

http://guava -libraries.googlecode.com / SVN / багажник / Javadoc / COM / Google / общие / база / Splitter.html

Что касается вашего вопроса, вот фрагмент кода:

Iterable<String> parts = Splitter.on('-').split(issueField);

Некоторые дополнительные бонусы с использованием Splitter вместо String.split:

  • Возвращенный Iterable ленив. В Другими словами, это на самом деле не будет делать работать, пока вы не перебираете его.
  • Он не разделяет все токены и сохранить их в памяти. Вы можете перебрать огромную строку, токен за токеном, без удвоения использование памяти.

Единственная причина не использовать Splitter - это если вы не хотите включать Guava в ваш путь к классам.

0 голосов
/ 11 февраля 2011

Вы также можете использовать класс java.util.StringTokenizer. Хотя String.split - более простой и подходящий способ решения вашей проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...