前回のテキスト出力プログラム を修正しました。
前回は、初めに 何行の文章を入力しないと 入力出来ないとゆう
トホホな 仕様で あったモノを 「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 件のコメント:
コメントを投稿