37 Stimmen

Ruby: Zeichen in Ascii aus einer Zeichenkette

Diese Wiki-Seite gibt eine allgemeine Vorstellung davon, wie man ein einzelnes Zeichen in ASCII umwandelt http://en.wikibooks.org/wiki/Ruby_Programming/ASCII

Aber sagen Sie, wenn ich eine Zeichenfolge haben und ich wollte jedes Zeichen ascii von ihm zu erhalten, was muss ich tun?

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

Es funktioniert nicht, weil es mit der Zeile $ascii = ?char nicht zufrieden ist

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

8voto

nikkypx Punkte 1720

Sie könnten auch einfach to_a nach each_byte oder noch besser String#bytes aufrufen

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

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

4voto

Mark Punkte 36101
"a"[0]

oder

?a

Beide würden ihr ASCII-Äquivalent zurückgeben.

4 Stimmen

Hat sich dies in Ruby 1.9 geändert?

1 Stimmen

Yea, in Ruby 1.8 es zurückgeben, die Zeichen ascii-Wert, aber es ruby das Zeichen am Index in Ruby 1.9...

10 Stimmen

"a"[0].ord sollte den Ascii-Code zurückgeben. Beachten Sie, dass es sich eigentlich um einen Unicode-Code handelt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X