一起生成随机字母和数字

发布于 2024-08-25 14:44:09 字数 137 浏览 4 评论 0原文

生成 6 个字符:第一个字符从字母列表中奇数顺序的字母中随机生成(A、C、E、…、Y),第二个字符从字母列表中偶数顺序的字母中随机生成(B、 D、F、…、Z)第三个字符是从字母列表(A 到 Z)中随机生成的,这三个数字中的每一个都是从 1 到 9 随机生成的。

Generate 6 characters: the first character is randomly generated from the alphabets with odd ordering in the alphabet list (A, C, E, …, Y) the second character is randomly generated from the alphabets with even ordering in the alphabet list (B, D, F, …, Z) the third character is randomly generated from alphabet list (A to Z) each of the three digits is random generated from 1 to 9.

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

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

发布评论

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

评论(10

(り薆情海 2024-09-01 14:44:09

这是作业吗?如果是这样,请适当标记您的问题。

这里有一个线索:字母和数字都是字符,您可以将它们存储在数组中。

Is this homework? If so please tag your question appropriately.

Here is a clue: letters and numbers are all characters, which you could store in an array.

游魂 2024-09-01 14:44:09

在java中你可以进行char算术。因此

'A' + RNG.nextInt(26);

将返回“A”和“Z”之间的一个随机字母,其中 RNGjava.util.Random 的实例。

有效地构建字符串。使用 StringBuilder

In java you can do char arithmetics. So

'A' + RNG.nextInt(26);

will return you a random letter between 'A' and 'Z', where RNG is an instance of java.util.Random.

To build the string efficiently. Use a StringBuilder

嘴硬脾气大 2024-09-01 14:44:09

不确定这是否是作业(看起来是),所以我将尝试为您指出可能方法的正确方向:

  • 回想一下,随机整数可以是
    其他两个之间的任意整数 X
    指定的整数 Y 和 Z。
  • 如何从随机数转换为随机字符?
  • 如何将 0 到 13 之间的随机数变成 0 到 26 之间的偶数?奇数?
  • 您如何利用这些想法/概念来回答这个问题?

Not sure if this is homework (it looks like it is), so I'll try to point you in the right direction of a possible approach:

  • Recall that a random integer can be
    any integer X between two other
    specified integers Y and Z.
  • How can you go from a random number to a random CHARacter?
  • How could you take a random number between 0 and 13, and turn that into an even number between 0 and 26? An odd number?
  • How can you use these ideas/concepts to your advantage for answering this question?
白鸥掠海 2024-09-01 14:44:09

使用我的库 dollar 很简单:

@Test
public void generateRandomString() {
    String string = $('a', 'z').shuffle().slice(3).join() + // take 3 random letters
                    $('0', '9').shuffle().slice(3).join();  // take 3 random digits
    assertThat(string.length(), is(6));
}

using my library dollar is simple:

@Test
public void generateRandomString() {
    String string = $('a', 'z').shuffle().slice(3).join() + // take 3 random letters
                    $('0', '9').shuffle().slice(3).join();  // take 3 random digits
    assertThat(string.length(), is(6));
}
玩心态 2024-09-01 14:44:09

使用随机生成器函数生成 [0,26) 范围内的数字,并将 (int)'a' 的值添加到其中,然后将结果转换回 char

use the random generator function to generate a number in the range [0,26) and add the value of (int)'a' to that, and cast the result back to a char

红衣飘飘貌似仙 2024-09-01 14:44:09

生成一组 0 - 61 之间的数字(上下各 61 个字母,加上数字)并将每个数字映射到 [0-9a-zA-Z] 中的一个,然后将整个数字连接在一起。

Generate a set of numbers between 0 - 61 (there are 61 letters for upper and lower, plus digits) and map each to one of [0-9a-zA-Z], then concatenate the whole thing together.

り繁华旳梦境 2024-09-01 14:44:09

您可以使用一些基本的东西:

  • 字母表中所有 26 个字符的数组,以及
  • 1 或 2 个随机数生成器实例。

Some basic things you can use:

  • an array of all 26 characters in the alphabet and,
  • 1 or 2 instances of a random number generator.
剩余の解释 2024-09-01 14:44:09

我想生成 6 个随机字符,包括 3 个随机字母,后跟 3 个随机数字,但我一次只能生成字母或数字。

char a = randomLetter();
char b = randomLetter();
char c = randomLetter();

int x = randomNumber();
int y = randomNumber();
int z = randomNumber();

String result = new String()+a+b+c+x+y+z;

I want to generate 6 random characters including 3 random letters followed by 3 random numbers but I can only generate only letters or numbers at one time.

char a = randomLetter();
char b = randomLetter();
char c = randomLetter();

int x = randomNumber();
int y = randomNumber();
int z = randomNumber();

String result = new String()+a+b+c+x+y+z;
墟烟 2024-09-01 14:44:09

你可以看看 RandomStringUtils,或者至少是它的源代码。

You could have a look at RandomStringUtils, or at least at its source code.

生生漫 2024-09-01 14:44:09

尝试使用 xeger金砖四国自动机

import nl.flotsam.xeger.Xeger;
import dk.brics.automaton.Automaton;

public class RandomizeString{
    public String generateRandomString(){
        String regex = "[ACEGIKMOQSUWY][BDFHJLNPRTVXZ][A-Z][0-9]{3}";
        Xeger generator = new Xeger(regex);
        String result = generator.generate();
        return result;
    }
}

要了解更多信息,请学习正则表达式。

Try with xeger and brics automaton.

import nl.flotsam.xeger.Xeger;
import dk.brics.automaton.Automaton;

public class RandomizeString{
    public String generateRandomString(){
        String regex = "[ACEGIKMOQSUWY][BDFHJLNPRTVXZ][A-Z][0-9]{3}";
        Xeger generator = new Xeger(regex);
        String result = generator.generate();
        return result;
    }
}

to understand more, learn Regular Expression.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文