Jython 随机字符串生成

发布于 2024-12-26 15:14:16 字数 640 浏览 1 评论 0原文

因此,我需要创建一个方法,根据 jython 中的给定长度返回随机字符串。如果我可以实现 python random ,那就很容易了,但是我找不到办法做到这一点,因为在每个随机示例中,我发现使用 java random 类而不是 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 随机类吗?

So, I need to make a method that would return a random string based on given length in jython. It would be easy if I could implement python random, but on I could not find a way to do that, since in every random example I found that java random class is used instead of python.
Here is the code bit:

  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

I am trying to make a string based on string containing all chars I need. I just can't seam to find a way to access char in string by index, like I would in C#.

Any ideas how to do that or maybe even import python random class?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

む无字情书 2025-01-02 15:14:16
c = chars.charAt(ind);

JavaDocs 提供指导。

c = chars.charAt(ind);

JavaDocs guide the way.

高冷爸爸 2025-01-02 15:14:16

试试这个,它适用于 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)

请注意,我使用的是 Jython 的 random 模块,而不是 Java 的 Random 类。一个更短的版本,使用带有模块级导入的列表推导式(按照 pep-8):

import random, string

def getrstr(self, length):
    seq = string.letters + string.digits
    return ''.join(random.choice(seq) for _ in xrange(length))

Try this, it works for me with 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)

Notice that I'm using Jython's random module, not Java's Random class. An even shorter version, using list comprehensions with module-level imports (as per pep-8):

import random, string

def getrstr(self, length):
    seq = string.letters + string.digits
    return ''.join(random.choice(seq) for _ in xrange(length))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文