rubyで以下のようなプログラムがあり、変数categoryの内容をcapitalizeしたいのですがどうすればよいでしょうか?/¥[(.+)¥]/ =~ linecategory = $1

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2003/08/09 18:02:28
  • 終了:--

回答(2件)

id:sasada No.1

sasada回答回数1482ベストアンサー獲得回数1332003/08/09 21:50:20

ポイント30pt

 「はてな」の質問では改行が無視されるようですので、rubyといえど文の区切りには「;」を入れていただいたほうが良いと思います。

 とりあえず、質問の式は、

/¥[(.+)¥]/ =~ line;

category = $1;

ということでしょうか。

 これをcapitalizeするなら、

category.capitalize;

で済むと思うのですが、質問の意図と外れていますでしょうか?

id:mute

それがcategoryはStringと見なされていないようで、そんなメソッドはないとおこられるんです。

2003/08/10 06:04:31
id:naltan No.2

naltan回答回数3ベストアンサー獲得回数02003/08/10 03:31:20

ポイント20pt

http://www.hatena.ne.jp/1060419748

rubyで以下のようなプログラムがあり、変数categoryの内容をcapitalizeしたいのですがどうすればよいでしょうか?/¥[(.+)¥]/ =~ linecategory = $1.. - 人力検索はてな

# URLはダミーです。

このプログラムで何をしたいのかその意図が説明されていないのでよくわかりませんが、String クラスの capitilize メソッドを使うのでは駄目なのですか?

e.g.) linecategory.capitalize!

id:mute

それができれば・・・・。

2003/08/10 06:05:10
  • id:sasada
    あ。質問が終わってますね。

     有効な回答が出来ず、ポイントだけもらってしまって、申し訳ないです。

    >それがcategoryはStringと見なされていないようで、そんなメソッドはないとおこられるんです。

    p $1;

    p category;
    で、想定している値が、文字列として出力されていますか?
     正規表現のマッチングに失敗して、nilが代入されていると こうなりそうです。


     ちゃんと文字列が表示されるなら、
    category = String(category).capitalize;
    か、
    category = ”#{category}”.capitalize;
    みたいに、強制的に文字列にしてから、メソッドを呼んでみては どうでしょう。

  • id:naltan
    Re:あ。質問が終わってますね。

    そうですね。回答への返信をみて何が問題なのかわかりました..。

    e.g)

    line = ’[test.test]’;

    /¥[(.+)¥]/ =~ line;

    category = String.new($1);

    category.capitalize!;

    print $1, ”=>”, category;


    $1 の nil チェックを必要に応じて行えばいいのかな。

    http://d.hatena.ne.jp/naltan/20030810#p2

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません