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
                ^

59voto

Konrad Rudolph Punkte 503837

Le site c Variable enthält bereits den Zeichencode!

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

ergibt

115
116
114
105
110
103

22voto

alexsuslin Punkte 3981
puts "string".split('').map(&:ord).to_s

10 Stimmen

Noch schöner als split('') ruft chars

14voto

LastZactionHero Punkte 249

Ruby String bietet die codepoints Methode nach 1.9.1.

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

str = ""
str.codepoints
=> [20320, 22909, 19990, 30028]

3 Stimmen

Brauchen Sie eigentlich die .to_a nach Codepoints? Scheint so codepoints gibt bereits ein Array zurück "abcde".codepoints.class #=> Array

12voto

Sh.K Punkte 269

Verwenden Sie "x".ord für ein einzelnes Zeichen oder "xyz".sum für eine ganze Zeichenfolge.

8voto

Die Änderungen in ruby1.9 finden Sie in diesem Beitrag Abrufen eines ASCII-Zeichencodes in Ruby mit `?` (Fragezeichen) schlägt fehl

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