[#44431] コンストラクタの引数について&インスタンス変数の持ち方について — Akira Hayakawa <ruby@...>

度々オブジェクト指向についての質問ですいません。

17 messages 2008/01/04
[#44433] Re: コンストラクタの引数について&インスタンス変数の持ち方について — Yukihiro Matsumoto <matz@...> 2008/01/04

まつもと ゆきひろです

[#44469] pdf 作成 ライブラリ — "Luiz Aoki" <luizruby@...>

はじめまして、青木ルイスと申します、

14 messages 2008/01/12
[#44479] ファイル出力時のprintについて — m-hatake@... 2008/01/16

畠山と申します。

[#44483] format %g の丸めについて — 山崎雄介 <y-yamasaki@...>

山崎(ゆ)です。

14 messages 2008/01/16

[ruby-list:44537] Re: カタカナ→ひらがな変換

From: rubikitch@...
Date: 2008-01-25 11:34:19 UTC
List: ruby-list #44537
From: "Hideo Konami" <konami@kyoto-wu.ac.jp>
Subject: [ruby-list:44536] カタカナ→ひらがな変換
Date: Fri, 25 Jan 2008 20:27:35 +0900

るびきちです。

> EUC-JP のカタカナを1文字ずつ切り出してから2バイトに分けて,
> 最初の1バイトから1 を引いて,ふたたび合わせてやればバイト
> 構成上はうまくいくはずだと思うのですが,

ふぅむ、文字コードの構造に依存していますね。

> character encodings differ (ArgumentError)

こういう場合はforce_encodingでエンコーディングを指定しないといけません。

> またコマンドライン引数の -Ke を外すとカタカナの範囲チェック
> を完全にスルーしてしまって,何もやってくれません。

仕様です。-Keかmagic commentを使ってください。

実はこの問題はString#trで間に合います。


#!/usr/local/bin/ruby -Ke
def kata2hira(jstr)
  str = ""
  range = 'ア' .. 'ン'
  jstr.each_char do |c|
    if range.include?(c) then
      a = []
      c.each_byte do |b|
        a << b
      end
      v = (a[0]-1).chr + a[1].chr
      #puts  v  # これはひらがなになっている
      str += v.force_encoding("EUC-JP")
    else
      str += c
    end
  end 
  str
end

def kata2hira2(jstr)
  jstr.tr('ア-ン', 'あ-ん')
end

str = 'abcあいうえおアイウガギヒャョンん'
kata2hira(str)                # => "abcあいうえおあいうがぎひゃょんん"
kata2hira2(str)               # => "abcあいうえおあいうがぎひゃょんん"

--
rubikitch
Blog: http://d.hatena.ne.jp/rubikitch/
Site: http://www.rubyist.net/~rubikitch/

In This Thread