在scanner.nextint()中避免换行

j1dl9f46  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(380)

我是 java 新手。我必须从2d数组中显示int系数。我想为同一行中的同一卖家提供每种价值。出现断线(由于扫描仪?)。我一直在寻找分隔符系统。在,但我不知道如何使用它,如果这是适当的。
拜托,你能帮我吗?先谢谢你

import java.util.Scanner;

public class Ventes {
    public static void main(String[] args) {
        Scanner myObj = new Scanner(System.in);
        System.out.print("Enter the number of sellers ");
        int nbrSellers = myObj.nextInt();
        System.out.print("Enter the number of models ");
        int nbrModels = myObj.nextInt();

        int[][] sales = new int[nbrSellers][nbrModels];

        for(int i = 1; i <= nbrSellers; i++) {
            System.out.print("Seller " + i + " ");
            for(int j = 0; j < nbrModels; j++) {
                sales[i][j] = myObj.nextInt();
            }
            System.out.println();
        }
    }
}

最终结果:
输入卖家数量5
输入型号4的数量
卖方10

2
0
终端最终结果

mrfwxfqh

mrfwxfqh1#

如果我理解正确,您希望在同一行中接收两个输入。如果是这样,达维德的评论是正确的。您不必按enter键,就可以使用以下行:

System.out.print("Enter the number of sellers and models (separated by a space): ");

int nbrSellers = myObj.nextInt();
int nbrModels = myObj.nextInt();

在同一行输入两个数字,如下所示:
5 4
或者可以使用如下分隔符:

Scanner myObj = new Scanner(System.in);
System.out.print("Enter the number of sellers and models (separated by a comma): ");
String input = myObj.nextLine();
String[] splitValue = input.split(",");

int nbrSellers = Integer.parseInt(splitValue[0]);
int nbrModels = Integer.parseInt(splitValue[1]);

int[][] sales = new int[nbrSellers][nbrModels];

for(int i = 1; i <= nbrSellers; i++) {
    System.out.print("Seller " + i + " ");
    for(int j = 0; j < nbrModels; j++) {
        sales[i][j] = myObj.nextInt();
    }
    System.out.println();
}

或者(根据下面的评论)如果必须使用for循环,请使用以下命令:

for(int i = 0; i < nbrSellers; i++) {
    System.out.print("Please enter " + nbrModels + " values for Seller " + (i + 1) + " (separated by a space): ");
    for(int j = 0; j < nbrModels; j++) {
        sales[i][j] = myObj.nextInt();
    }
    System.out.println();
}

输入数字如下:
3 4 6 2 1

相关问题