Лично мне очень нравится струнный токенизатор. Я знаю, что в наши дни это не в моде, ведь сплит настолько прост, но ...
(Psuedocode из-за высокой вероятности выполнения домашнего задания)
create new string tokenizer using (" -") as separators
iterate for each token--tell it to return separators as tokens
if token is " "
return next token;
сделано.