Ruby1.9での文字列操作について。
Ruby1.9での文字列操作について。
今までRuby1.8を使用していましたが、Ruby1.9に変えてから、次の4種類の問題が出てきました。
(※Ruby1.9に変えてから、#encoding: shift_jisを定義しております)
どれか1種類でも結構ですので、Ruby1.9での対策、代替の処理について教えてください。
<問題1>
■文字列を指定のバイト位置まで削除する
□現在(Ruby1.8)のコード
moji = "1あアあアイ234565789"
moji[4,14] = ""
→1.8では、"1あア"となりますが、1.9では、"1あアあ"となります。
<問題2>
■文字列の中から指定文字が見つかったバイト位置の算出
□現在(Ruby1.8)のコード
n = "あいうえお".index("う")
→1.8では、n=4となりますが、1.9では、n=2となります。
<問題3>
■指定した年月日の存在チェック
□現在(Ruby1.8)のコード
y = 1900
m = 3
d = 10
if Date.exist?(y,m,d)
p "test#
end
→1.8では、trueとなりますが、1.9では実行時にNoMethoodErrorとなります。
<問題4>
■半角英数字→全角英数字変換
□現在(Ruby1.8)のコード
sss = moji.tr('a-zA-Z0-9', 'a-zA-Z0-9')
→1.9では実行時にエラーメッセージが出力されます(略)
色々と書きましたが、どうかお助けください。
お礼