繁体   English   中英

一个非常基本的 java 打印问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM