[英]A very basic java outprint issue
我想要一个特定的命令在同一行上打印,但它在不同的行上打印,我想不出一个简单的修复方法。
package lab10;
import java.util.Scanner;
public class PrintArray {
public static void main(String[] args) {
int numItems;
int[] items;
Scanner scan = new Scanner (System.in);
System.out.println("Enter the number of items");
numItems = scan.nextInt();
items = new int [numItems];
if (items.length > 0);{
System.out.println("Enter the value of all items"
+ "(seperated by space):");
for (int i = 0; i < items.length; ++i) {
int val = scan.nextInt();
items[i]= val;
}
}
for (int i = 0; i < items.length; ++i) {
if (i== 0) {
System.out.println("The values are:" + items[i]);
}else {
System.out.println("The values are:" + items[i] + "," + " ");
}
}
}
}
预期结果:
输入商品数量
3
输入所有项目的值(以空格分隔):
1 2 3
值为:1、2、3
实际结果:
输入商品数量
3
输入所有项目的值(以空格分隔):
1 2 3
值为:1
值为:2,
值为:3,
而不是i == 0
你想要items.length == 0
,并且“is”不是“are”。 此外,您需要额外的逻辑来处理连接值(并使用System.out.print
来避免打印换行符)。 喜欢,
if (items.length != 0) {
System.out.print("The values are: ");
}
for (int i = 0; i < items.length; ++i) {
if (items.length == 1) {
System.out.print("The value is: " + items[i]);
} else {
if (i != 0) {
System.out.print(", ");
}
System.out.print(items[i]);
}
}
System.out.println();
我认为这种方法可能更清洁。
StringJoiner joiner = new StringJoiner(", ", "The values are:", "");
if (items.length > 0){
System.out.println("Enter the value of all items"
+ "(seperated by space):");
for (int i = 0; i < items.length; ++i) {
int val = scan.nextInt();
items[i]= val;
joiner.add(items[i]);
}
}
System.out.println(joiner.toString());
顺便说一句,在这一行
if (items.length > 0);{
分号 ( ;
) 不应该在那里。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.