Groovy: Generate random string from given character set

后端 未结 6 539
温柔的废话
温柔的废话 2021-01-31 14:33

Using Groovy, I\'d like to generate a random sequence of characters from a given regular expression.

  • Allowed charaters are: [A-Z0-9]
  • Length o
6条回答
  •  半阙折子戏
    2021-01-31 15:32

    If you don't want to use apache commons, or aren't using Grails, an alternative is:

    def generator = { String alphabet, int n ->
      new Random().with {
        (1..n).collect { alphabet[ nextInt( alphabet.length() ) ] }.join()
      }
    }
    
    generator( (('A'..'Z')+('0'..'9')).join(), 9 )
    

    but again, you'll need to make your alphabet yourself... I don't know of anything which can parse a regular expression and extract out an alphabet of passing characters...

提交回复
热议问题