- 締切済み
Rubyでテキストから読みこんで計算するには
Rubyプログラムを勉強中のものです。 openでテキストを読みこみ、そのテキストの中にある数字を使い、 defで計算するにはどのようなプログラムを作ればよいのでしょうか? 例えばnum.txtがあり、この中には 1.りんご 100円 2.みかん 80円 3.梨 120円 という内容が書き込まれているとします。 これを open("num.txt", "r") do |mise| で開く処理をし、 def fee (fru) fru * 0.5 end fruのなかにテキストに書かれている数字をいれて計算させるにはどのようにしたらよいでしょうか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- ki073
- ベストアンサー率77% (491/634)
回答No.1
金額をfeeに渡したいのでしたら、 まず s=mise.gets で1行読み込んで、次に金額部分を取り出します。やり方はいろいろ考えられますが、 行がかならず円で終わるのでしたら s[/(\d+)円$/,1] のように正規表現をつかうという方法(日本語が入っているので文字コードを指定しないと多分うまくいかない) またsplitやscanなどで文字列を分けて最後の要素から数字だけを取り出すなどいろいろ考えられます。 それと取り出した数字は文字列ですので、計算するためには to_fやto_iで数値に直す必要があります。 またscanfを使う方法もあり、こちらは指定によっては直接数値に変換できます。 私自身は、splitかscanでフィールドに分けて、数字部分を取り出し、to_fで数値化する方法をよく使います。