Rubyが初めてで、現在、Rubyの基本文字列とは別に各文字を操作しようとしています。Ruby 1.8.6を使用して、次のようなことを行います:
"ABCDEFG".each_char do |i|
puts i
end
これにより、未定義のメソッド「each_char」エラーが生成されます。
私は次の垂直出力を見ることを期待していました。
A
B
C
D
..etc
それは each_char
1.9に対してのみ定義されたメソッド?プレーンなeach
メソッドを使用してみましたが、ブロックは単に文字列全体を1行で出力します。私がこれを行う方法を考える唯一の方法は、かなり不便ですが、最初から文字の配列を作成することです:
['A','B','C','D','...'].each do|i|
puts i
end
これにより、目的のものが出力されます。
A
B
C
..etc
おそらく、変更されていない文字列を使用してこの出力を実現する方法はありますか?
Java同等のものは:
for (int i = 0; i < aString.length(); i++){
char currentChar = aString.charAt(i);
System.out.println(currentChar);
}
1.8.6には本当に問題があります。そして、このエディションの後は大丈夫です
1.8.6では、これを追加できます。
requre 'jcode'
しかし、今ではもっと多くのことができます:
a = "cruel world"
a.scan(/\w+/) #=> ["cruel", "world"]
a.scan(/.../) #=> ["cru", "el ", "wor"]
a.scan(/(...)/) #=> [["cru"], ["el "], ["wor"]]
a.scan(/(..)(..)/) #=> [["cr", "ue"], ["l ", "wo"]]