Hatena::Grouprubyist

Rubyを勉強しようと思ってはじめた日記

2008-02-10はじめてのRuby(9)

文字列(1)文字列の長さを知る

| 18:38 | 文字列(1)文字列の長さを知る - Rubyを勉強しようと思ってはじめた日記 を含むブックマーク はてなブックマーク - 文字列(1)文字列の長さを知る - Rubyを勉強しようと思ってはじめた日記 文字列(1)文字列の長さを知る - Rubyを勉強しようと思ってはじめた日記 のブックマークコメント

文字列を扱う方法は大切。

大切に扱いたいですね。

string =  "オブジェクト指向言語Ruby"
p string,"\n"
p string.length
p string.split(//u).length

lengthや、sizeで知ることができるのはバイト数。

そこで、正規表現を利用して文字数をカウントする。今回はUTF-8

例として、EUCや、Shift-jisが出ています。

p string.split(//e).length    # EUC
p string.split(//s).length    # Shift-jis

でも、これは試していない。

配列クラス(5)

| 18:08 |  配列クラス(5) - Rubyを勉強しようと思ってはじめた日記 を含むブックマーク はてなブックマーク -  配列クラス(5) - Rubyを勉強しようと思ってはじめた日記  配列クラス(5) - Rubyを勉強しようと思ってはじめた日記 のブックマークコメント

多重配列というか、配列の中に配列を入れる場合について。

本を読んでいたら、1.6と1.8では違うよ!という記述が見つかりました。ここは注意!

{Ruby] 配列クラス(4)eachとeach_with_index

17:54 | {Ruby] 配列クラス(4)eachとeach_with_index - Rubyを勉強しようと思ってはじめた日記 を含むブックマーク はてなブックマーク - {Ruby] 配列クラス(4)eachとeach_with_index - Rubyを勉強しようと思ってはじめた日記 {Ruby] 配列クラス(4)eachとeach_with_index - Rubyを勉強しようと思ってはじめた日記 のブックマークコメント

each

eachを使うと要素のインデックスはわからないけれど、配列の要素すべてにアクセスができる

list = [1,12,34,14,5,6]
subm = 0;
list.each{|elem|
    sum += elem
}
print "合計値は", sum, "です\n"

結果

合計値は72です

each_with_index

each_with_indexを使うと、インデックスもわかりつつ、配列の要素すべてにアクセスができる

list = [1,12,34,14,5,6]
list.each_with_index{|elem, i|
    print i+1, "番目の要素は", elem, "です\n"
}

結果

1番目の要素は1です
2番目の要素は12です
3番目の要素は34です
4番目の要素は14です
5番目の要素は5です
6番目の要素は6です

2つのメソッドがあるんだねぇ...

配列クラス(3)

| 17:38 |  配列クラス(3) - Rubyを勉強しようと思ってはじめた日記 を含むブックマーク はてなブックマーク -  配列クラス(3) - Rubyを勉強しようと思ってはじめた日記  配列クラス(3) - Rubyを勉強しようと思ってはじめた日記 のブックマークコメント

配列内の各要素を処理する

list = [1,12,34,14,5,6]
for i in 0..3
    print i+1, "番目の要素は", list[i], "です\n" 
end

1番目の要素は1です
2番目の要素は12です
3番目の要素は34です
4番目の要素は14です

for文で要素を1つずつ処理していくパターン。

ありがちだけれど、慣れ親しんでいますね。

試した男試した男2009/07/09 11:56日本語の処理を伴うスクリプトは、 ruby -Ks <ファイル名> のように、 -Ks オプションをつけないとエラーが出ますね。

試してない男試してない男2010/02/13 17:40日本語ふつーに使えちゃってますよ!環境によってはオプションつけなくても平気ですよ!

カレンダー
2007 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 09 | 10 | 11 | 12 |
2009 | 06 | 08 |