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

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

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

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

Q&A

解決済

2回答

204閲覧

[Ruby]配列内の要素の数を新しい配列に入れるためには。

ruby_11

総合スコア37

Ruby

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

0グッド

0クリップ

投稿2017/06/27 07:59

ruby

1text = open(ARGV[0], &:read).gsub(/[0-9:0-9]/, '').gsub(/\s--|\:\s|\;|\(|\)|\,|\.|\?|\"/, '').gsub(/\-/, ' ').gsub(/Scream|Laughter|Applause|Video|Music/, '').split(/\s\I\s/) 2puts ARGV[0] 3 4i = 0 5while i < text.length 6 p text[i].split(/ /).count 7 8 i += 1 9end

英語のテキストを分析しています。
文章内のIとIの間の単語数を出力するために上のプログラムを書きました。
単語数は実際に出力できたのですが、それぞれの数値を新しく作った配列に格納するためにはどうすればいいのでしょうか?

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

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

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

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

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

guest

回答2

0

ベストアンサー

どの様な結果を期待されておられるのか分かりませんが

[{"I have a pen"=>4}, {"have an apple"=>3}]

この形式ならば

ruby

1text = open(ARGV[0], &:read).chop.gsub(/[0-9:0-9]/, '').gsub(/\s--|\:\s|\;|\(|\)|\,|\.|\?|\"/, '').gsub(/\-/, ' ').gsub(/Scream|Laughter|Applause|Video|Music/, '').split(/\s\I\s/) 2p text.map!{|x| {x => x.split(/ /).count}}

この様な感じかと思います。また単に数値の配列であれば

ruby

1text = open(ARGV[0], &:read).chop.gsub(/[0-9:0-9]/, '').gsub(/\s--|\:\s|\;|\(|\)|\,|\.|\?|\"/, '').gsub(/\-/, ' ').gsub(/Scream|Laughter|Applause|Video|Music/, '').split(/\s\I\s/) 2p text.map!{|x| x.split(/ /).count}

この様になります。

投稿2017/06/27 08:33

mattn

総合スコア5030

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

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

0

配列 << 要素
で配列に要素を追加することができます。
他に配列の先頭に要素を追加するunshift
末尾に要素を追加するpushを使う方法が
あります。

Ruby

1# encoding: utf-8 2 3array = [] 4i = 0 5while i < 10 6 array << i 7 i += 1 8end 9 10p array 11

投稿2017/06/27 13:29

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

ruby_11

2017/06/28 01:46

基本的な配列操作を学ぶ必要があると思いました。 ご指摘ありがとうございます。
退会済みユーザー

退会済みユーザー

2017/06/29 16:34 編集

いえいえ。どういたしまして。 今回の場合もmattn様がおっしゃっているように mapを使えばよりすっきりと書けるかもしれません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問