このブログを検索

2019年7月12日金曜日

前回の テキストプログラムを 修正。

 前回のテキスト出力プログラム を修正しました。

 前回は、初めに 何行の文章を入力しないと 入力出来ないとゆう
 トホホな 仕様で あったモノを 「END」を入力すると記入したものを、
 txt に出力するものに改良。

 初心者なので 引っかかった所は、
 if(str == "END") break; では while(true){
 の無限ループを break する事が出来ない事。
 正しくは、if(str.equals("END")) break; 

🌟前回のテキスト出力プログラムを 変更


//ファイルに出力するプログラムを作ろう。
//何行 入力しますか ← やめる
//文字を入力させて → 「END」を入力すると 入力終了
//その文字をファイルに出力
import java.io.*;

class SampleP462_3
{
    static String output_sentence; //クラス変数 出力時 出力文書
    
    public static void main(String[] args)
    {
        output_sentence = sentence(); // output_sentence クラス変数 文字入力のメソッドに移動
        System.out.println("sakubunn.txt に 出力をしました。");
        output();    //テキスト出力メソッドに移動
    }
    public static String sentence() //行の文字の入力 → inputにて入力作業 → クラス変数に返す
    {
        String str_t = ""; //統合用変数
        String str = "";
        int num = 1;       //ループ用変数(行数)
        while(true){       //while(true)は無限ループ
            str = input(num + "行目の入力です。 END(半角大文字) にて入力終了"); //inputメソッにて入力作業
            str_t += str + "\n";  //文字の統合
            num++;//行数++
            if(str.equals("END")) break;  //"END"を記入すると無限ループからbreak
            //if(str == "END") break;  //という記述は間違い
        }
        return str_t;
    }
    public static String input(String txt)  //入力メソッド(汎用) Stringで返す。
    {
        System.out.println(txt);     //txt(コメント)を表示
        BufferedReader br =                        //入力処理
         new BufferedReader(new InputStreamReader(System.in));
        String str = null;               //変数 str はこのメソッドのみ有効
        try{
            str = br.readLine();
        }
        catch(IOException e){
            System.out.println(e);
        }
        return str;
    }
    public static void output(){
        try{
            FileWriter fw = new FileWriter("sakubunn.txt");
            fw.write(output_sentence);
            fw.close();
        }
        catch(IOException e){
            System.out.println("ファイルが書き込めません。");
        }
    }

}

はてはて、今度は もっと アホ男子が喜びそうな、
プログラムに改良してみよう。

今日の教訓
 面白いモノを作ってみよう。

0 件のコメント:

コメントを投稿