如何使用变量数量的参数格式化字符串

20 浏览
0 Comments

如何使用变量数量的参数格式化字符串

假设我有一个方法,它返回一个随机数量的随机数列表 - 我们将称这个方法为List getRandomNumberOfRandomNumbers();

System.out.println(String.format("这些是随机数:%s", getRandomNumberOfRandomNumbers()));

我知道这样做不起作用,但我该如何达到这个效果?

示例输出

这些是随机数:
1 4 2 4
这些是随机数:
2 43 323 434 3423 54

0
0 Comments

在某些情况下,我们需要格式化一个包含可变数量参数的字符串。例如,我们想要将一个整数列表中的数字以空格分隔的形式打印出来。然而,如果我们不知道列表中有多少个数字,我们该如何处理呢?

一个解决方法是通过迭代列表,并将值添加到一个字符串构建器中,然后再打印出来。具体做法如下:

StringBuilder stringBuilder = new StringBuilder();
for(Integer number : getRandomNumberOfRandomNumbers())
    stringBuilder.append(number + " ");
System.out.println("Here are the random numbers: " + stringBuilder.toString().trim());

这段代码首先创建了一个StringBuilder对象,用于构建字符串。然后,通过迭代随机生成的数字列表,将每个数字添加到字符串构建器中。在每个数字后面添加一个空格,以便在打印时能够正确分隔数字。最后,使用toString()方法将字符串构建器转换为字符串,并使用trim()方法去除开头和结尾的空格。最终,通过System.out.println()方法打印出格式化后的字符串。

使用这种方法,我们可以灵活地处理不同数量参数的情况,而不需要事先知道列表中有多少个参数。无论列表中有多少个数字,都可以正确地格式化并打印出来。

因此,通过迭代列表并将值添加到字符串构建器中,然后打印出格式化后的字符串,我们可以解决如何对带有可变数量参数的字符串进行格式化的问题。

0
0 Comments

问题的出现原因是需要将一个包含不确定数量元素的列表格式化为字符串,并按照特定的方式输出。在示例中,需要将一个包含整数的列表转换为字符串,并去除其中的特殊字符,只保留数字。解决方法是使用正则表达式替换特殊字符,或者使用其他替代方法。

一个解决方法是使用List的toString()方法将列表转换为字符串,然后使用正则表达式去除其中的特殊字符。但是这种方法可能不是最高效的方法。

另一种解决方法是使用StringJoiner、StringUtils或String.Join等方法将列表的元素连接成一个字符串。这些方法可以更好地控制输出的格式,并且不依赖于List的toString()方法的实现。

在团队合作中,不能假设其他方法返回的列表始终是ArrayList,因为将来他们可能会使用自定义的AbstractList版本,覆盖默认的toString()方法。因此,依赖于List的toString()方法的实现是一种不好的习惯。

使用%n代替\n可以使代码在不同的操作系统上都能正常工作。%n是与操作系统无关的换行符。

如果Java API发生更改,toString()方法的返回值可能会有所不同,因此最好不要依赖于其具体实现。

0
0 Comments

问题的出现原因:

上述内容中提到了一个函数getRandomNumberOfRandomNumbers(),它返回一个随机数量的随机数。在使用这个函数时,我们需要将返回的随机数按照一定的格式输出,即格式化字符串。然而,由于随机数量的随机数是不确定的,因此无法直接使用传统的字符串格式化方法来实现。

解决方法:

为了解决这个问题,可以使用Java中的流操作(Stream)以及Lambda表达式来实现。具体的解决方法如下:

1. 调用getRandomNumberOfRandomNumbers()函数获取随机数量的随机数。

2. 使用流操作的map方法,将每个随机数转换为字符串形式。

3. 使用流操作的collect方法,将所有字符串连接起来,用空格分隔。

4. 最终得到的结果即为格式化后的字符串。

以下是具体的代码示例:

getRandomNumberOfRandomNumbers().stream()
    .map(Object::toString)
    .collect(Collectors.joining(" "));

通过以上方法,我们可以实现对随机数量的随机数进行格式化输出。这种方法的优点是简洁、灵活,适用于不确定数量的变量的格式化输出。

0