33

このウィキページは、単一の文字をasciiに変換する方法の一般的なアイデアを提供しましたhttp://en.wikibooks.org/wiki/Ruby_Programming/ASCII

しかし、文字列があり、そこから各文字のASCIIを取得したい場合は、何をする必要がありますか?

"string".each_byte do |c|
      $char = c.chr
      $ascii = ?char
      puts $ascii
end

$ ascii =?charという行に満足していないため、機能しません。

syntax error, unexpected '?'
      $ascii = ?char
                ^
4

7 に答える 7

56

変数にはcすでにcharコードが含まれています!

"string".each_byte do |c|
    puts c
end

収量

115
116
114
105
110
103
于 2008-09-27T15:37:24.587 に答える
20
puts "string".split('').map(&:ord).to_s
于 2012-03-19T16:37:00.183 に答える
10

Ruby String はcodepoints1.9.1 以降のメソッドを提供します。

str = 'hello world'
str.codepoints.to_a
=> [104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100] 

str = "你好世界"
str.codepoints.to_a
=> [20320, 22909, 19990, 30028]
于 2015-07-23T14:55:08.687 に答える
9

単一の文字には "x".ord を使用し、文字列全体には "xyz".sum を使用します。

于 2013-12-15T19:59:25.227 に答える
8

ruby1.9での変更点はこちらの記事を参照してくださいRubyで`?`(クエスチョンマーク)を使ってASCII文字コードを取得すると失敗します

于 2010-03-03T09:50:14.090 に答える
4
"a"[0]

また

?a

どちらも同等のASCIIを返します。

于 2009-10-13T00:53:11.363 に答える