状態遷移図を下図のように変更します。

状態遷移表は下表のようになります。黄色が変更部分、水色が追加部分です。

ステップ1
まず、クラス名と必要な変数名を決めます。
クラス変数やインスタンス変数は不要で、ローカル変数のみを用います。
ステップ2
文字を1文字ずつ読み込んで、処理をするという部分を作りこみます。
1〜3行目と12〜26行目が追加部分です。

この辺で一度コンパイルをして、コンパイル・エラーのないことを確認しておきましょう。
ステップ3
18行目に状態遷移表を埋め込みます。文字ごとの分岐を記述します。
if文に条件を書き連ねてもよいのですが、
この場合、アルファベットかどうかの判定と、単語間を区切るスペースの判定は、
条件が長くなることと、今後の変更・追加が予想されることのため、
メソッドとして、外出しにすることにしました。
ステップ4
各文字ごとに、状態による分岐構造を埋め込みます。
ここは、いつも禁じ手にしている、コピー・アンド・ペーストを使いましょう。
ほぼ完成
状態遷移表を縦に読みながら、アクションと状態推移を書き込んでゆきます。
53行目は結果の表示です。
19行目はデバッグのための行で、読んだ文字をそのまま画面に表示しています。
デバッグが終わっても、削除せずにコメントにしておきましょう。
プログラム
実行例
テストデータ