1

正規表現を介して特定の文字列から株価を除外する簡単なプログラムを作成しています。配列内の印刷結果に問題はありませんが、「include?」を使用しようとすると、特定の印刷結果のブール値を出力するには、false を受け取ります。

このコードは私の正確な問題を示しています:

http://ideone.com/JiQlA

一致、要素の数を示し、それがコード内の配列であることを確認しましたが、「include?」を使用して特定の印刷要素「A」を取得しようとすると、(10行目)、「true」の出力に失敗します。

誰かがここで私のエラーを親切に説明してくれたり、特定の要素が配列に含まれているかどうかを適切に見つける方法を教えてくれたりすると、とてもありがたいです。ありがとうございました。

4

3 に答える 3

8

配列の要素は文字列ではなく、たまたま文字列として出力される MatchData です。String"A"は と等しくないため#<MatchData "A" 1:nil>include?失敗します。

于 2012-06-17T19:30:18.867 に答える
5

puts matches.map{|x| x.to_s}.include?("A")

于 2012-06-17T19:30:14.037 に答える
1

ここに見られるように、 はオブジェクトmatchesの配列であるためです。最初に要素を文字列に変換する必要があるため、呼び出しでそれを行います。MatchDatamap

matches = s.to_enum(:scan, r).map { Regexp.last_match.to_s }
于 2012-06-17T19:31:52.977 に答える