16

Ruby では、String の個々の要素を出力しようとすると問題が発生します。各文字を表示する代わりに、ASCII 値を表示しています。

>> a = "0123"
=> "0123"
>> a[0]
=> 48

オンラインで調べましたが、元の「0」を元に戻す方法が見つかりません。私はRubyに少し慣れていないので、単純なものでなければならないことを知っていますが、それを見つけることができないようです。

4

7 に答える 7

15

または、整数をその文字値に変換できます。

a[0].chr
于 2008-08-27T04:34:03.493 に答える
7

[0] の代わりに [0,1] が必要です。

于 2008-08-27T04:22:04.020 に答える
6

Ruby 1.9 では、"asdf"[2] が文字コードではなく "d" を生成するように変更されていると思います。

于 2008-08-27T04:29:45.313 に答える
5

要約する:

この動作はバージョン 1.9 ではなくなり、文字自体が返されますが、以前のバージョンでは、文字列の 1 文字をその文字位置で参照しようとすると、その文字値が返されます (したがって、"ABC"[2] は返されます)。 67)

文字列から一定範囲の文字を返すメソッドは多数あります (文字列スライス メソッドに関する Ruby ドキュメントを参照してください)。次のすべてのメソッドは "C" を返します。

"ABC"[2,1] 
"ABC"[2..2]
"ABC".slice(2,1)

範囲セレクターが最も読みやすいと思います。効率が悪いかどうかについて誰でも話せますか?

于 2008-09-02T02:26:30.193 に答える
1

@クリス

[] と [,] が String クラスに対して定義されているのは、まさにその通りです。

String API を確認してください。

于 2008-08-27T04:31:17.447 に答える
1

[,] 演算子は文字列を返します。これは部分文字列演算子です。[] 演算子は、出力時に ruby​​ が数値として扱う文字を返します。

于 2008-08-27T05:10:25.200 に答える