>  Q&A  >  본문

字符串函数 - Ruby 中如何生成一个随机字符串?

需要得到一个大小写混合的字符串[a,A-Z,z],目前用的方法是

value = ""; 12.times{value << ((rand(2)==1?65:97) + rand(26)).chr}

感觉还是不好,而且再加混合数字的串就不会了。不知道有没有更好的方法,烦请详细指点!

伊谢尔伦伊谢尔伦2761일 전758

모든 응답(3)나는 대답할 것이다

  • ringa_lee

    ringa_lee2017-04-22 09:01:12

    (0...50).map{ ('a'..'z').to_a[rand(26)] }.join

    다음이 더 효율적입니다:
    o = [('a'..'z'),('A'..'Z')].map{|i|i| .평탄화;o = [('a'..'z'),('A'..'Z')].map{|i| i.to_a}.flatten;
    string = (0...50).map{ o[rand(o.length)] }.join;
    문자열 = (0...50).map{ o[rand(o.length)] }.join;

    회신하다
    0
  • 巴扎黑

    巴扎黑2017-04-22 09:01:12

    선택할 포스터를 하나 더 추가하세요:
    rand(36 ** n).to_s(36)
    n은 생성된 문자열의 길이입니다

    회신하다
    0
  • PHPz

    PHPz2017-04-22 09:01:12

    [*('a'..'z'),*('A'..'Z'),*(0..9)].shuffle[0..9].join

    회신하다
    0
  • 취소회신하다