이것은 루비에만 국한된 문제보다 더 일반적인 문제입니다. 루비에서 발생하고 있습니다. 문자열을 Integer/Long/Bigint로 변환하려고합니다. 예를 들어 Base62 (0-9a-zA-Z)와 같은 문자 집합을 사용하여 문자열을 원하는대로 호출하려고합니다.문자열 대 정수 변환에서 문자 세트의 첫 문자를 생략
문제는 "0ab"과 같은 문자열을 정수로 변환하려고 할 때 그 정수를 "ab"문자열로 변환하려고 할 때입니다. 이것은 알파벳의 첫 문자를 시작하는 모든 문자열에서 발생합니다.
다음은 동일한 문제가있는 구현 예입니다. 행동
https://github.com/jtzemp/base62/blob/master/lib/base62.rb
:
2.1.3 :001 > require 'base62'
=> true
2.1.3 :002 > Base62.decode "0ab"
=> 2269
2.1.3 :003 > Base62.encode 2269
=> "ab"
나는 명백한 누락 될 수 있습니다.
예외없이 양방향으로 변환하려면 어떻게해야합니까?
무엇이 당신의 질문입니까? – sawa
죄송합니다. 명확하지 않은 경우 예외없이 양방향으로 변환 할 수 있기를 바랍니다. – brancz
선행 0은 삭제됩니다. ' "0123".to_i.to_s'는 "123"을 반환합니다. – Stefan