再帰で書いて、単語の列を逆順に並べたいです。

タグの編集
投稿者 初心者  (中学生) 投稿日時 2009/12/28 10:33:02
再帰で、単語の列を逆順に並べ替えたいのですが、まず、
(入力文)
"apple orange banana melon"
(出力文)
"melon banana orange apple"
で出力文の単語の綴り自体は反転させません。
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2009/12/28 11:38:59
再帰にする必要は無さそうです。

Dim 入力文 As String = "apple orange banana melon"
Dim 出力文 As String = Join(入力文.Split().Reverse().ToArray(), " ")
MsgBox(出力文)


Dim 入力文 As String = "apple orange banana melon"
Dim words() As String = 入力文.Split()
Array.Reverse(words)
Dim 出力文 As String = Join(words, " ")
MsgBox(出力文)
投稿者 初心者  (中学生) 投稿日時 2009/12/29 10:53:08
魔界の仮面弁士さん。返信ありがとうございます。
2003年バージョンでいまうごかしたのでうすが、エラーがでてできません。
もし、余計なことかもしれませんが、どうしても再帰でやるとしたら、どのようにすればよいですか?
投稿者 るしぇ  (社会人) 投稿日時 2009/12/29 15:51:22
> 2003年バージョンでいまうごかしたのでうすが、エラーがでてできません。
こちらの環境では問題なく動作しました。
エラーメッセージに原因が書いてありますので、読んで解決してください。

> どうしても再帰でやるとしたら、どのようにすればよいですか?
先頭から空白までを切り取って残りを自分自身に渡せば良いのでは?
文字列が無くなった時点で、戻り値で自分の切り取った文字列を
後ろに追加して返すようにすればできるね。