記事一覧
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
|