このブログを検索

2019年6月22日土曜日

やさしいjava 6版 P462のサンプルプログラム

やさしいjava 6版
 P462のサンプルプログラムを、
 好きな文章を入力し、テキストファイルに出力するものに変えてみよう。
 また、今回も
「Java入門教室」
 に記載してあった ”汎用性のあるメソッド”を使用しました。
 

🌟P462ページサンプルプログラムを 変更

//ファイルに出力するプログラムを作ろう。
//何行 入力しますか
//文字を入力させて
//その文字をファイルに出力

import java.io.*;

class SampleP462_2
{
    static int line_count;    //クラス変数 行数
    static String output_sentence; //クラス変数 出力時 出力文書
    
    public static void main(String[] args)
    {
        System.out.println("テキストに文字を出力させます。" + "\n");
        line_count = line(); // line_count クラス変数 行数の入力メソッドに移動
        System.out.println("\n" + line_count + "行の文章を作成します。" + "\n");
        output_sentence = sentence(); // output_sentence クラス変数 行の文字入力のメソッドに移動
        output();    //テキスト出力メソッドに移動
    }
    public static int line() //行数の入力 → input にて入力作業 → クラス変数に返す
    {
        String str = input("何行の文章を入力しますか?"); //変数 str はこのメソッドのみ有効
        int n;                                     //変数 n はこのメソッドのみ有効
        try{
            n = Integer.parseInt(str);
        }
        catch(Exception e){
            System.out.println("数値以外が入力されました。1行のみ出力します。");
            n = 1;
        }
        return n;
    }
    public static String sentence() //行の文字の入力 → inputにて入力作業 → クラス変数に返す
    {
        String[] str = new String[line_count];  //文字の入力
        String str_g = "";                      //変数 str_g はこのメソッドのみ有効
        
        for(int i=0; i<str.length; i++){
            str[i] = input( (i+1) + "行目の入力です。"); // inputメソッド にて入力作業
        }
        
        for(int i=0; i<str.length; i++){  //文字の統合
            str_g += str[i] + "\n";
        }
        return str_g;
    }
    public static void output()  //テキストに出力メソッド
    {
        try{
            PrintWriter pw = new PrintWriter
            (new BufferedWriter(new FileWriter("sakubunn.txt")));
            
            pw.println(output_sentence);
            System.out.println("ファイルに書き込みました。");
            
            pw.close();
        }
        catch(IOException e){
            System.out.println(e);
        }
    }
    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;
    }

}

このプログラムは、初めに何行の文章を入力するのか、
予め入力するという 非常に使い勝手が悪いもの。
それを改良したものを作るのだ。

今日の教訓
 改良したものを作るぞー!

0 件のコメント:

コメントを投稿