Ruby로 임의의 문자열 생성
Ruby 버전 >= 2.5를 사용하는 경우 다음과 같이 간단하게 갈 수 있습니다.
SecureRandom.alphanumeric(length)
이전 버전의 경우 약간의 숫자 변환 해킹을 활용할 수 있습니다.
Integer#to_s
메서드는 기준을 나타내는 인수를 허용합니다.예를 들어:
13.to_s(2) # => "1101" in binary
13.to_s(16) # => "d" in hex
def alphanumerical_code(length)
# 36 is used here as base: we want 10 digits plus 26 letters
(36 ** (length - 1) + rand(36 ** length - 36 ** (length - 1))).to_s(36)
end
def digital_code(length)
(10 ** (length - 1) + rand(10 ** length - 10 ** (length - 1))).to_s(10)
end
더 많은 맞춤형 생성기
더 구체적이고 더 많은 제어가 필요한 경우 자체 생성기를 만들 수 있습니다.
인쇄 매체에서 고객이 문자열을 더 쉽게 구분할 수 있도록 일부 문자를 제외하는 임의의 영숫자 문자열 생성기가 필요하다고 가정해 보겠습니다.
class Generator
CHARSET = [('0'..'9'), ('a'..'z'), ('A'..'Z')]
def initialize(length:, exceptions: [])
@length = length
@allowed_charset = CHARSET.flat_map(&:to_a) - exceptions
end
def perform
(0...@length)
.map { @allowed_charset[rand(@allowed_charset.size)] }
.join
end
end
generator = Generator.new(
length: 10,
exceptions: ['1', 'I', 'l', '0', 'o', 'O']
)
generator.perform
(1..3).map { better_generator.perform }
# => ["FXCpz9evUj", "JP3uGhF35i", "rP4wv8Q5rm"]
Reference
이 문제에 관하여(Ruby로 임의의 문자열 생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jetthoughts/generating-random-strings-with-ruby-2gp6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)