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

标签 java cmd

我正在尝试编写一个非常简单的程序,该程序捕获有关预期工作的一些关键信息并将其插入准备好的求职信中。我已经导入了 Java 的扫描器实用程序,正如您在我的代码中看到的那样。当我通过 Windows cmd 提示符中的“Java”命令运行它时,第一个 System.out.println 命令出现,我(用户)根据提示输入。但是,控制台只是简单地输出我输入的内容,而不会继续执行代码的其他部分。另外,正如您所看到的,控制台仅输出我输入的第一个单词。 我对编程非常陌生,有人能发现我错过了什么吗?

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

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](/image/EqheW.jpg)

最佳答案

您有两个问题:过早关闭扫描仪以及使用 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

关于java - 控制台返回扫描仪捕获的第一件事,而不移动到其他代码块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46860117/

相关文章:

c++ - 在 C ://上使用 C++ 中的树命令

windows - 如何从其托管的脚本中关闭父 cmd 控制台窗口?

java - 从批处理文件中终止从 Java 启动的进程

java - 从命令行创建 jar 文件的工具

batch-file - 计算批处理脚本的执行次数

java - 在 Spring Data JPA 存储库中使用泛型

java - 如何在 Eclipse 中使用 CXF 使用 WebService

java - 请求开始时的异常 - ClientAuth SSL

java - Selenium webdriver 在 webelement 列表中存储 webelement

java - 使用 XStream 进行 XML 序列化