当前位置: 首页 > 知识库问答 >
问题:

避免扫描仪中的断线。nextInt()

费德宇
2023-03-14

我是Java新手。我必须从2D数组向终端显示int系数。我想在同一行中为同一卖家提供每个值。有一个换行符(由于扫描仪?)。我一直在寻找分隔符system.in但我不明白如何使用它,如果这是合适的。

请帮帮我好吗?先谢谢你

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的数量

卖家1 0

3.

2个

0

共有1个答案

陆子默
2023-03-14

如果我理解正确,你想在同一行中接收两个输入。如果是这样,大卫的评论是正确的。你不必按回车键,这样你就可以用下面的行:


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

 类似资料:
  • 这是我的用例: 我有一个带有200k对象的JSON Api。数据集看起来有点像这样:日期、自行车型号、以分钟为单位的生产时间。我使用Lambda从JSON Api中读取并通过超文本传输协议请求在DynamoDB中写入。Lambda函数每天运行并使用最新数据更新DynamoDB。 然后,我按日期检索数据,因为我想计算每天的平均生产时间,并将其放在第二个表中。Alexa技能连接到第二个表,并读取每天的

  • 问题内容: 我的Java作业有问题。我遇到了意外的异常,特别是: java.util.NoSuchElementException:找不到行 我正在使用,该程序不断读取任何内容,并重复“无效格式”异常文本。如果输入正确的值,则第一部分通过,然后该部分立即进入此异常。如果输入的值不正确,则它将开始循环异常。 这是我的代码: 问题答案: 您关闭了多个库,这些库关闭了底层库,因此另一个库将不再从同一库和

  • 问题内容: 使用Scanner类中的useDelimiter时遇到一些问题。 如果我有这个输入 美国广播公司 输出将是 AB 然后等到我键入另一个“-”以打印出最后一个字符 但是,如果我没有用户输入数据,而是将字符串插入到Scanner中,则代码将起作用。原因是什么?如何解决?我不想使用StringTokenzier 问题答案: 如果没有等待您输入另一个,则将错误地假定您已完成输入。 我的意思是,

  • 我做了一个程序,要求3个整数来输出三角形的类型。所有内容都成功运行和编译,但是,在要求用户查看是否要再次循环的部分,联机编译器会输出错误: 异常线程"main"java.util.NoSuchElement异常在java.util.Scanner.throwFor(Scanner.java:838)在java.util.Scanner.next(Scanner.java:1347)在Assignm

  • 我对Java非常陌生,但我正在阅读《Java:如何编程》(第9版)一书,并且已经找到了一个例子,在我的一生中,我无法找出问题所在。 以下是教科书中源代码示例的(稍微)扩充版本: 我得到'NoSuchElementExcema'错误: 我理解这可能是由于源代码中的某些内容与,但我真的无法进一步推断问题所在。

  • 我有两个do-while循环用于进行自定义输入验证。问题是它会自动进入下一个do while循环。正确插入名称后,我必须放置一个新的下一行():name=scanner。nextLine() 我知道当光标停留在那里时,nextLine()会出现“小故障”,您必须调用nextLine()才能继续。资料来源:https://www.geeksforgeeks.org/why-is-scanner-sk