문제
이 위키 페이지는 단일 숯을 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
^
해결책
그만큼 c
변수는 이미 숯 코드를 포함합니다!
"string".each_byte do |c|
puts c
end
수율
115
116
114
105
110
103
다른 팁
puts "string".split('').map(&:ord).to_s
Ruby1.9의 변경 사항은이 게시물을 참조하십시오. `?`(물음) 실패를 사용하여 Ruby에서 ASCII 문자 코드 받기
루비 스트링을 제공합니다 codepoints
1.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]
단일 문자에 "x".Ord를 사용하거나 전체 문자열에 "xyz".sum을 사용하십시오.
또한 각 _byte 또는 더 나은 문자열#바이트 이후에 To_a를 호출 할 수 있습니다.
=> '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]
"a"[0]
또는
?a
둘 다 ASCII를 반환합니다.
제휴하지 않습니다 StackOverflow