当用户在新行中按回车键时,他/她必须退出 while 循环。但它不起作用,它不断去新的线路

我需要做以下练习:a)制作一个新的文本文件 b)将用户的输入放入该文本文件中 c)我们必须在用户继续键入的同时保存所有用户的输入,但是一旦用户在新行中按Enter键(当发送空字符串时),用户必须退出程序。对于编码这个问题,我写了以下代码,但是当我自己尝试时,所以我被困在 while 循环中,当我发送空字符串时无法退出。那么任何人都可以帮助解决这个问题吗?


谢谢


我已经尝试了一些我在youtube上找到的解决方案,比如在 while 循环中生成 if 语句,或者在循环的条件中添加获取用户输入的代码。所以我不知道下一阶段该怎么办。我试图通过 Eclipse 输出查看控制台窗口。



import java.io.*;

import java.util.Scanner;

public class lesson {

    public static void main(String[] args) throws IOException {


        File file = new File("mytext.txt");


        if (file.exists() == false) {

            file.createNewFile();

        }

        PrintWriter pw = new PrintWriter(file);

        System.out.println("Enter a text here: ");

        String str;

         while (true) {

             Scanner input = new Scanner(System.in);

            str = input.next();

            pw.println();

            if (str.equals(null)) {

                break;

            }

        } 

        pw.close();

        System.out.println("Done");

    } 

}


当用户发送空字符串时,他/她必须离开循环。并且必须完成对文件的写入。


幕布斯6054654
浏览 56回答 2
2回答

青春有我

首先是代码,然后是解释...import java.io.File;import java.io.IOException;import java.io.PrintWriter;import java.util.Scanner;public class Lesson {    public static void main(String[] args) {        File file = new File("mytext.txt");        try (Scanner input = new Scanner(System.in);             PrintWriter pw = new PrintWriter(file)) {            System.out.println("Enter a text here: ");            String str = input.nextLine();            while (str.length() > 0) {                pw.println(str);                pw.flush();                str = input.nextLine();            }        }        catch (IOException xIo) {            xIo.printStackTrace();        }        System.out.println("Done");    }}上面的代码至少需要 Java 7,因为它使用尝试资源。 应该关闭,就像应该关闭一样。试用资源可确保它们已关闭。请注意,如果文件 mytext.txt 不存在,则创建新的文件也会创建该文件,如果该文件已存在,则其内容将被删除并替换为您输入的文本。ScannerPrintWriterPrintWriter之后显示提示,即在此处输入文本,用户输入一行文本。方法将获取输入的所有文本,直到用户按 Enter 键。我再次阅读了您的问题,当用户在未键入任何文本的情况下按Enter键时,程序应退出。当用户执行此操作时,是一个空字符串,即它的长度为零。这意味着我需要在循环之前分配一个值,因此在循环之前第一次调用方法。nextLine()strstrwhilenextLine()while在循环中,我将用户输入的值写入文件mytext.txt然后等待用户输入另一行文本。如果用户在未键入任何文本的情况下按 Enter 键,则长度为零,循环将退出。whilestrwhile在 Windows 10 上使用 JDK 12 编写并进行了测试,使用适用于 Java 开发人员的 Eclipse,版本 2019-03。

慕娘9325324

为了实现这一点,我们检查输入的长度是否>0:import java.io.*;import java.util.Scanner;public class lesson {    public static void main(String[] args) throws IOException {        File file = new File("mytext.txt");        if (file.exists() == false) {            file.createNewFile();        }        PrintWriter pw = new PrintWriter(file);        System.out.println("Enter a text here: ");        String str;        Scanner input = new Scanner(System.in);        while ((str = input.nextLine()).length() > 0) {             //str = input.next();             pw.println(str);        }         pw.close();        System.out.println("Done");    } }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java