我的代码输出有一个小问题,并且一直在搜索与此相同的主题,但我没有找到任何主题。
while (true) {
System.out.print("Enter a positive integer: ");
n = sc.nextInt();
System.out.print(n + "! = ");
for (int i = 1; i <= n; i++) {
factorial = factorial * i;
System.out.printf("%d x " , i);
}
System.out.println("");
}
输出一定是。每当我输入整数时。例如 5。
Enter a positive integer: 5
5! = 1 x 2 x 3 x 4 x 5
但有个小问题是输出是这样的5! = 1 x 2 x 3 x 4 x 5 x
最后一个数字上有多余的 x,这是不应该出现的
字符串连接器
其他人已经回答了如何修复您的代码,但我想为您提供更多信息专业的解决方案,即通过使用StringJoiner
.
有了这个,您可以给出分隔符、前缀和后缀,然后只需添加所有元素和StringJoiner
将确保分隔符仅添加在两者之间。它需要你承担所有的工作。这是代码:
StringJoiner sj = new StringJoiner("x ", n + "! = ", "");
for (int i = 1; i <= n; i++) {
sj.add(Integer.toString(i));
}
System.out.println(sj);
Streams
如果您更喜欢流:
String result = IntStream.rangeClosed(1, n)
.mapToObj(Integer::toString)
.collect(Collectors.joining("x ", n + "! = ", ""));
System.out.println(result);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)