我正在寻找如何随机生成类似23-3455673的值。我的问题是我不确定如何在随机数字代码中间获取-。
我正在使用Maven Java项目并使用RandomStringUtils.randomnumeric(10)
因此,正在寻找一种方法来随机生成该值,即23-5672345,基本上是两位数,然后是-然后是7个数字。
我在这里不是很熟练,所以我真的不是在寻找技术性高的答案,只是我正在寻找的最简单的方法来完成这项工作。
预先感谢您提供有关如何完成此操作的建议。
答案 0 :(得分:1)
我将生成一个长度为String
的{{1}},然后在索引9
处插入-
:
2
答案 1 :(得分:1)
我不确定“在行家中”是什么意思,但是当您使用RandomStringUtils.randomnumeric(10)
时可以使用
StringBuilder sb =new StringBuilder(RandomStringUtils.randomNumeric(2)).append("-").append(RandomStringUtils.randomNumeric(7))
String result=sb.toString()
System.out.println(result);
答案 2 :(得分:0)
没有第三方库:
1)简单的解决方案:生成2位数字,然后附加-
然后生成7位数字:
Random random = new Random();
StringBuilder sb = new StringBuilder();
//Append a number between [0; 10[
sb.append(random.nextInt(10));
sb.append(random.nextInt(10));
sb.append('-');
for (int i = 0; i < 7; i++) {
sb.append(random.nextInt(10));
}
System.out.println(sb);
输出:
77-5711939
2)简洁的解决方案:生成一个9位数的字符串。
random.nextInt(1_000_000_000)
,但是如果生成的值小于100_000_000
,则不能保证您有9位数字。因此,您将使用String.format()
填充值:
// %09d imposes 9 digits. 0 are added if necessary.
// String.format("%09d", 42) returns 000000042
String result = String.format("%09d", random.nextInt(1_000_000_000));
然后,您可以在第二个位置插入-
。