Насколько вы контролируете вход? Можете ли вы гарантировать, что автор и заголовок всегда будут разделены " - "
(пробел, тире и пробел)? Вы точно знаете, что автор не будет содержать " - "
? И так далее.
Если ввод достаточно жесткий, тогда вы можете просто использовать String#split()
, что должно очень ясно понять, что вы делаете. Не используйте StringTokenizer ( source ):
StringTokenizer - это устаревший класс, который сохраняется по соображениям совместимости, хотя его использование не рекомендуется в новом коде. Всем, кто ищет эту функцию, рекомендуется использовать вместо этого метод split String или пакет java.util.regex.
Ответ Марк Байерс показывает, как использовать split()
.
Однако, если вам нужно беспокоиться о большем разнообразии входных данных (например, может ли количество пробелов вокруг тире быть переменным или не существовать вообще?), Тогда использование регулярного выражения будет кратким и кратким. Компромиссом является читаемость кода и ясность намерений.