亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

當用戶在新行中按回車鍵時,他/她必須退出 while 循環。但它不起作用,它不斷去新的線路

當用戶在新行中按回車鍵時,他/她必須退出 while 循環。但它不起作用,它不斷去新的線路

幕布斯6054654 2022-09-22 10:43:00
我需要做以下練習: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");    } }當用戶發送空字符串時,他/她必須離開循環。并且必須完成對文件的寫入。
查看完整描述

2 回答

?
青春有我

TA貢獻1784條經驗 獲得超8個贊

首先是代碼,然后是解釋...


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。


查看完整回答
反對 回復 2022-09-22
?
慕娘9325324

TA貢獻1783條經驗 獲得超4個贊

為了實現這一點,我們檢查輸入的長度是否>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");

    } 

}


查看完整回答
反對 回復 2022-09-22
  • 2 回答
  • 0 關注
  • 102 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號