我是Java的新手,很抱歉,如果这是一个简单的问题。我想生成一个随机的IP地址。我正在单独生成4个数字,并希望将它们格式化为#。#。#。#
我的代码如下:
static final Random _random = new Random(Integer.parseInt(seed) / 2);
String ip = String.format(
Locale.US,
"#.#.#.#",
_random.nextInt((254 - 1) + 1) + 1,
_random.nextInt((254) + 1),
_random.nextInt((254) + 1),
_random.nextInt((254 - 1) + 1) + 1
);
我收到错误
格式字符串的参数太多(找到:4,预期:0)
我做错了什么?
答案 0 :(得分:3)
我认为你只需要一个范围并将其分配给你的字符串(没有太多的模糊):
final Random random = new Random();
final String ip = String.format("%d.%d.%d.%d", random.nextInt(255) + 1,
random.nextInt(256), random.nextInt(256), random.nextInt(255) + 1);
//System.out.printf("%s%n", ip);
答案 1 :(得分:2)
您可以使用上述方法,也可以使用#clan格式,DecimalFormat
Random random = new Random();
DecimalFormat format = new DecimalFormat("###");
String value = new StringBuilder()
.append(format.format(random.nextInt(256))).append(".")
.append(format.format(random.nextInt(256))).append(".")
.append(format.format(random.nextInt(256))).append(".")
.append(format.format(random.nextInt(256))).toString();