彼/彼女は新しい行でEnterキーを押すと、ユーザーは、whileループから抜け出す必要があります。しかし、それは動作しませんし、それが新しい行にいっています

Habiballah Hezarehee:

(ときa)は、ユーザーが新しい行でEnterキーを押すユーザー次第、タイピングを保持しますが、一方で、我々は、すべてのユーザーの入力を保存する必要があります))新しいテキストファイルbを作成し、そのテキストファイルcにユーザーの入力を入れて:私は、次の演習を行う必要があり空の文字列は、ユーザがプログラムから抜け出す必要があります)送信されます。この問題を符号化するために、私は以下のコードを記述しているが、私は、whileループで立ち往生していますので、私は自分でそれをしようとしたとき、私は空の文字列を送信するときに、出傾けます。だから、この問題の解決策とのだれでもヘルプがもらえますか?

感謝

私は、if文、whileループ内で行うか、ループの状態内部ユーザの入力を受け取り、コードを追加するように、私はユーチューブで見つけた解決策のいくつかを試してみました。だから私は、次の段階で何をするか分かりません。私は、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");
    } 
}

彼/彼女は空の文字列を送信するとき、ユーザーは、ループから抜け出す必要があります。そして、ファイルへの書き込みが終了しなければなりません。

アブラ:

まず、コード、説明...

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必要としてみてください-と資源Scanner同じように、閉鎖されるべきでPrintWriter閉じる必要があります。try-と資源彼らが閉じている保証します。ファイルの場合は注意することをmytext.txtが存在しない、新しいを作成することPrintWriterも、ファイルを作成し、ファイルが既に存在する場合、その内容は削除され、ユーザーが入力したテキストに置き換えられます。

プロンプトが表示されていることをした後、つまりはここにテキストを入力し、ユーザーは、テキストの行を入力します。この方法は、nextLine()プレスが入力したユーザまで、入力されたすべてのテキストを取得します。私は再びあなたの質問を読んで、ユーザーがEnterキーを押すとプログラムが終了する必要があり、任意のテキストを入力せずユーザーがこれを行う場合は、str空の文字列、すなわち、それはゼロの長さがあります。意味私は、値を割り当てる必要があるstrwhileの方法ループ、従って最初の呼び出しnextLine()の前にwhileループ。

内部whileループ私は、ファイルにユーザーが入力した値の書き込みmytext.txtをして、ユーザーがテキストの別の行を入力するのを待ちます。ユーザーを押すが、任意のテキストを入力せずに入力した場合、strゼロの長さを持つことになりますし、whileループが終了します。

書かれており、使用してWindows 10上のJDK 12を使用してテストしたEclipseを Javaの開発者は、バージョン2019から03のために。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=210644&siteId=1