Использование String.split()
и регулярное выражение, а не StringTokenizer
, как насчет:
String input = "this \"is a great\" day";
for (String word: input.split("(?<=\").+(?=\")|\\b\\w+\\b"))
{
System.out.println("["+word+"]");
}
Выход:
[this]
[is a great]
[day]
Из вашего примера я предполагаю, что вы имеете в виду двойные кавычки ("), а не апострофы (').
NB : Первоначально я опубликовал нечто гораздо более простое, что сработало для вашего примера, но не для ввода, например:
" yes this \"is a great\" day all right"