有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java控制台返回扫描器捕获的第一件事,而不转移到其他代码块

我正试图写一个非常简单的程序,它能捕捉到关于未来工作的一些关键信息,并将这些信息插入准备好的求职信中。正如您在我的代码中看到的,我已经导入了Java的scanner实用程序。当我在windows的cmd提示符下通过“Java”命令运行它时,第一个系统。出来println命令出现,I(用户)按提示输入。但是,控制台只输出我输入的内容,而不转到代码的其他部分。此外,正如您所看到的,控制台只输出我输入的任何内容的第一个字。 我是一个编程新手,有人能发现我遗漏了什么吗

我将在此处包括控制台的图像(代码如下):

Link to picture - Lack to reputation needed to edit in photos

查找下面的代码

 import java.util.Scanner;

public class CoverLetter {
    public static void main(String[] args) {
        System.out.println("Welcome to tera_byteme's Simple Cover Letter Generator.");

        // defines scanner "reader", prompts user to enter business name, stores that in a string var "bizName", closes reader
        Scanner reader = new Scanner(System.in);
        System.out.println("Please enter the business name.");
        String bizName = reader.next();
        reader.close();

        //same as above block but asks for position title, stores in string var "posTitle"
        System.out.println("Please enter position title.");
        String posTitle = reader.next();
        reader.close();

        //"" but asks for user's name, stores in string var "userName"
        System.out.println("Please enter your name.");
        String userName = reader.next();
        reader.close();

        String seg1 = new String();
        seg1 = "My name is " + userName + " and I am very interested in working for ";

        String seg2 = new String();
        seg2 = bizName + "as a " + posTitle;

        String finalCut = new String();
        finalCut = seg1 + seg2;

        System.out.println("Here is your cover letter!");
        System.out.println(finalCut);


    }
}![enter image description here](https://i.stack.imgur.com/EqheW.jpg)

共 (1) 个答案

  1. # 1 楼答案

    您有两个问题:过早关闭扫描仪,使用next()而不是nextLine()。别忘了重新编译!我测试了这些修复,它对我有效。此代码:

    import java.util.Scanner;
    
    public class CoverLetter {
        public static void main(String[] args) {
            System.out.println("Welcome to tera_byteme's Simple Cover Letter Generator.");
    
            // defines scanner "reader", prompts user to enter business name, stores that in a string var "bizName", closes reader
            Scanner reader = new Scanner(System.in);
            System.out.println("Please enter the business name.");
            String bizName = reader.nextLine();
    
            //same as above block but asks for position title, stores in string var "posTitle"
            System.out.println("Please enter position title.");
            String posTitle = reader.nextLine();
    
            //"" but asks for user's name, stores in string var "userName"
            System.out.println("Please enter your name.");
            String userName = reader.nextLine();
            reader.close();
    
            String seg1 = new String();
            seg1 = "My name is " + userName + " and I am very interested in working for ";
    
            String seg2 = new String();
            seg2 = bizName + " as a " + posTitle;
    
            String finalCut = new String();
            finalCut = seg1 + seg2;
    
            System.out.println("Here is your cover letter!");
            System.out.println(finalCut);
    
        }
    }
    

    给出以下输出:

    Welcome to tera_byteme's Simple Cover Letter Generator.
    Please enter the business name.
    Biz Inc.
    Please enter position title.
    Senior Manager
    Please enter your name.
    Jeff
    Here is your cover letter!
    My name is Jeff and I am very interested in working for Biz Inc. as a Senior Manager