ぼんさい塾

ぼんさいノートと補遺に関する素材や注釈です.ミスが多いので初稿から1週間を経た重要な修正のみ最終更新日を残しています.

Java のプログラム (2)

2011-06-08 17:31:09 | 暮らし
記事一覧


P12: 標準入出力([1-9])
//-------------------------------------------
package chk;
import java.io.*;
public class Main {
    public static void main(String[] args) 
            throws IOException {
        BufferedReader r;
        String s;
        double x, a;
        r = new BufferedReader(
                new InputStreamReader(System.in),
                1
            );
        System.out.print("半径=");
        System.out.flush();
        String s = r.readLine();
        x = Double.valueOf(s).doubleValue();
        a = Math.PI * x * x;
        System.out.println("円の面積=" + a);
    }
}
//-------------------------------------------
run:
run:
半径=5
円の面積=78.53981633974483
構築成功 (合計時間: 7 秒)
//-------------------------------------------

P13: StringBuffer型
//-------------------------------------------
package chk;
public class Main {
    public static void main(String[] args) {
        StringBuffer s = new StringBuffer(100);
        int a=365; String b="xyz"; double c=3.1416;
        s.append ("a + b + c = ");
        s.append(a); s.append(b); s.append(c);
        b = s.toString(); System.out.println(b);
        s.delete(5, 20); b = s.toString();
        System.out.println(b);
    }
}
//-------------------------------------------
run:
a + b + c = 365xyz3.1416
a + b1416
構築成功 (合計時間: 0 秒)
//-------------------------------------------

 
Java の標準入出力については,まず奥村先生の名
解説[1-9]を読んでください.ここでは,その復習
と StringBuffer, StringBuilder クラスに関する
説明を行います.

「まず覚えるCの文法」では標準入出力を scanf()
と printf() に限定しました.ここでも標準入力は
readLine() だけにします.P12 は[1-9]のプログラ
ム例のほぼ丸写しです.
・太字の部分の説明は[1-9]をご覧下さい.
・Math.PI については[1-10]をご覧下さい.
・System.in.read() と例外処理については次回説明
  します.

Cの場合,「char s="xyz";」と宣言された s には
適当な場所に "xyz" を格納して,その先頭番地でs
を初期化していました.P13 の String型 の参照 b
も同様です.「b = "abd";」「b="12345";」を実行
するたびにメモリが消費されていきます.これに対
して StringBuffer型 では常に new で作成した領
域を使います.
おまけ:NetBeans では「Ctrl + Z」が効かないよう
なので[1-9]の入力(文字コード)の「c == -1」を
「c == 101」に変更. 'e'の後の改行で止まります.
もちろん ツールバーでの強制終了はいつでも可能.
//-------------------------------------------
package chk;
import java.io.*;
public class Main {
    public static void main(String[] args)
            throws IOException {
        int c;
        while ((c = System.in.read()) != 101){
            System.out.println(c);
        }
        System.out.println("end");
    }
}
//-------------------------------------------
[1-9] 標準入出力
  http://oku.edu.mie-u.ac.jp/~okumura/java2/io.html
  ぜひ読んでください.
[1-10] java.lang.Math
  http://java.sun.com/javase/ja/6/docs/ja/api/java/lang/Math.html
[1-11] StringBufferとStringBuilder
  http://ja.wikipedia.org/wiki/StringBuffer%E3%81%A8StringBuilder
  多くのString オブジェクトを生成しては捨てて
  いく処理の替わりにStringBufferを使った方が
  より効率的である。
[1-12] java.lang.StringBuffer
  http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/StringBuffer.html