Генерация случайных строк в Jython - PullRequest
2 голосов
/ 13 января 2012

Итак, мне нужно создать метод, который бы возвращал случайную строку на основе заданной длины в jython.Было бы легко, если бы я мог реализовать Python random, но я не мог найти способ сделать это, поскольку в каждом случайном примере я обнаружил, что случайный класс Java используется вместо Python.Вот бит кода:

  def getrstr (self, length):
    from java.util import Random
    import string
    chars = string.letter + string.digits
    str = ''
    for i in range(1, (length+1)):
      ind = random.nextInt(62) #there should be 62 charicters in chars string
      c = #this is the part where i should get radom char from string using ind
      str = str + c
    return str

Я пытаюсь создать строку, основанную на строке, содержащей все необходимые мне символы.Я просто не могу найти способ получить доступ к символу в строке по индексу, как в C #.

Есть идеи, как это сделать, или даже импортировать случайный класс Python?

Ответы [ 2 ]

2 голосов
/ 13 января 2012

Попробуйте, у меня это работает с Jython:

def getrstr(self, length):
    import random, string
    seq = string.letters + string.digits
    randomstr = []
    for i in xrange(length):
        randomstr.append(random.choice(seq))
    return ''.join(randomstr)

Обратите внимание, что я использую модуль random Jython, а не класс Random Java.Еще более короткая версия, использующая списочные выражения с импортом на уровне модуля (согласно pep-8):

import random, string

def getrstr(self, length):
    seq = string.letters + string.digits
    return ''.join(random.choice(seq) for _ in xrange(length))
1 голос
/ 13 января 2012
c = chars.charAt(ind);

JavaDocs руководство.

...