質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

2回答

1916閲覧

rubyのコードについて

reotantan

総合スコア295

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

1クリップ

投稿2015/08/18 15:27

単語数のカウントをするコードと本にありましたが、
どうしたら単語数をカウントできますか?
getsにどうしたら単語を入れる事ができますか?
count=Hash.new(0)
while line =gets
words=line.split
words.each{|word|
count[word] +=1
}
end

count.sort{|a,b|
a[1]<=>b[1]
}.each{|key,value|
print "#{key}: #{value}\n"
}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

スクリプトが、foo というファイルに書かれているとして、単語数を数えたいファイルが data.txt だとすると、実行方法は、

ruby foo < data.txt

です。

投稿2015/08/18 15:39

otn

総合スコア84507

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

reotantan

2015/08/19 01:38

ruby wordcount.rb<a.textと打ったのですが何もでてきません。 どうしてでしょうか
reotantan

2015/08/19 04:41

ありがとうございました
otn

2015/08/19 07:48

> 何もでてきません。 エラーメッセージすら出ないというのは考えにくいです。 data.txtが空と言うことは無いですよね。
reotantan

2015/08/19 09:40

アドバイスを受けて解決できました。 本当にありがとうございました!
guest

0

ベストアンサー

とりあえず、そのコードをwordcount.rbに保存して実行してください。
コンソールで入力を待つので、スペース区切りで

hello hello world

のように単語を入力して入力を終了(Ctrl+D)すれば、

world: 1 hello: 2

のように単語数が出力されます。

投稿2015/08/18 15:38

ikeyan

総合スコア136

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

reotantan

2015/08/19 01:39

コードを実行後 hello hello worldと打ちましたが何もでてきまん。 なぜでしょうか
ikeyan

2015/08/19 01:54

このようにコードを変えてみたら、反応は変わるでしょうか。 hello hello world(改行) EOF(改行) と入力してみてください。 count=Hash.new(0) while line =gets if line.start_with?("EOF") then break end print line words=line.split words.each{|word| count[word] +=1 } end count.sort{|a,b| a[1]<=>b[1] }.each{|key,value| print "#{key}: #{value}\n" }
ikeyan

2015/08/19 02:00

もしくは、最初の例で、 hello hello world(改行) (Ctrl+D) と入力してみてください。
reotantan

2015/08/19 02:42

C*\User\ramune\Desktop\wordcount.rb 実行する ここでは何もでません hello hello world (改行して ^Dと打ちました。 コード自体には問題ってないんでしょうか
ikeyan

2015/08/19 04:19 編集

Windowsでしたか。なら、Ctrl+DはCtrl+Zに読み替えてください。 これはターミナルを End of File (EOF) 状態にするキーです。 これで1番目と2番めの例を試してみてください。 (半角で入力していますか?念のため)
reotantan

2015/08/19 04:41

できました。何度も親切にありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問