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

使用扫描仪读取数据时的异常

隆扬
2023-03-14

我在尝试运行此程序时遇到以下异常。我正在使用在线编译器。甚至在读取字符串后尝试使用nextLine(),但没有成功。

    Input:
    Enter the Customer Name:Roger Clinton
    Enter the Customer id:101
    Enter Credit Limit:10000


    Expected Output
    The Customer details are
    Customer Name: Roger Clinton
    Customer id: 101
    Credit Limit: 10000.00


    public class Main {
        public static void main(String[] args) {

           Scanner sc=new Scanner(System.in); 

           System.out.println("Enter the Customer Name:");
           String name=sc.nextLine();
           sc.nextLine();
           System.out.println("Enter the Customer id");
           int id=sc.nextInt();
           System.out.println("Enter Credit Limit:");
           double bal=sc.nextDouble();
           System.out.println("The Customer details are");
           System.out.println("Customer Name:"+name);
           System.out.println("Customer id:"+id);
           System.out.println ("Credit Limit: "+String.format("%.2f", bal));

        }
    }

我得到了以下异常:输入客户名称:在线程“main”java中输入客户id异常。util。NoSuchElementException:在java中找不到行。util。扫描仪。nextLine(Scanner.java:1585)位于Main。main(main.java:12)

共有1个答案

吴建中
2023-03-14

试试这个吧

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        System.out.println("Enter the Credit Card details");
        System.out.println("Enter the expiry month :");
        Scanner sc=new Scanner(System.in);
        int exp=sc.nextInt();
        Scanner sc1=new Scanner(System.in);
        System.out.println("Enter the card holder name :");
        String name = sc1.nextLine(); // ** i guess you had a typo here** 
        Scanner sc2=new Scanner(System.in);
        System.out.println("Enter the credit balance :");
        float bal=sc2.nextFloat();
        System.out.println("Credit Card Details");
        System.out.println("Expiry Month :"+exp);
        System.out.println("Name :"+name);
        System.out.println ("Credit Balance :"+String.format("%.2f", bal));

    }
}
 类似资料:
  • 问题内容: 编辑 以便进一步阅读:问题是我的输入文件已损坏。 我不明白我在做什么错: 我正在使用此代码: 哪个工作正常。现在,由于某种原因,我想换一个扫描仪。我的代码变成: 这次,我们从不输入while,因为r.hasNextLine()始终返回“ false”。关于我在做什么错的任何想法吗? 我精确地说,没有其他更改,文件仍然相同。 编辑 :我还精确地我尝试了另一个文件,并得到相同的结果,这意味

  • 问题内容: 我正在玩Scanner类,以进行学习,并且我使用它来读取非常大的文件(大约60.000行,大约不使用Reader类),并且在大约400行后停止读取。我是否必须在Scanner的构造函数中使用Bufferedreader还是问题?我想知道为什么会这样。谢谢。我的代码是输出所有行的常用代码。 问题答案: 此问题通常在64位计算机上或文件大小大于1-2 GB的文件中更常见,并且与堆空间无关。

  • 我有麻烦更新一个变量的名称为一个对象使用扫描器。我提供一个菜单给用户,用户选择他的选择(更新名称),程序要求用户输入新的名称,扫描器读取system.in并更新变量的名称。唯一的问题是程序不能读取带有空格的字符串。例如: 如果键入类似的内容,则可以执行此操作,但如果键入,则将得到,输出示例如下 所以我猜它只读取t,当扫描器扫描shipProperty值时,它读取dog而不是等待输入。我读过关于的文

  • 问题内容: 我正在尝试做的是拥有多个具有不同变量的输入。每个变量将是不同方程式的一部分。我正在寻找一种方法来做,我想我有一个主意。我只想知道这是否合法,也许还有更好的方法。 问题答案: 如果每个输入都问相同的问题,则应使用循环和输入数组: 或者如Chip所建议的,您可以从一行中解析输入: 您在正确的轨道上,所做的工作正常。这只是一种更好,更灵活的处理方式。

  • 嗨,我正在编写一个程序,它使用Scanner从用户那里获取输入,然后使用布尔方法检查输入的长度是否不超过六个字符。问题是,如果长度小于六个,我使用了while循环来不断请求输入;但是在第一次错误输入后,如果你插入一串六个字母或更长的字符串,循环仍然会继续。这是程序: 谢谢

  • 问题内容: 发生异常时,如何使扫描仪重试? 考虑此应用程序在CLI模式下运行。 例: 如果用户未输入类型输入,则抛出错误。但我想在错误消息出现之后。应该要求用户再次输入 宽度 。 怎么做? 问题答案: 如果我对您的理解正确,则希望该程序在失败后要求用户重新输入正确的输入。在这种情况下,您可以执行以下操作: 注意:您 只能 捕获并重试一次。这些方法会引发其他异常,如果您尝试重试这些异常,则您的应用程