プログラミング 第5回

プログラミング 第5回
whileループ
文字列の操作
[email protected]
プログラミング第5回
1
While1.java (List 7-1, p.144)
public class While1 {
public static void main(String[] args){
int i=0;
while(i<3){
System.out.println(i);
i++;
}
System.out.println("end");
}
}
プログラミング第5回
2
実行例
0
1
2
end
プログラミング第5回
3
Copy1.java (List 7-2, p.148) (1)
import java.io.*;
public class Copy1 {
public static void main(String[] args){
BufferedReader reader =
new BufferedReader(
new InputStreamReader(System.in),1);
プログラミング第5回
4
Copy1.java (2)
try {
String line=reader.readLine();
while(line!=null){
System.out.println(line);
line=reader.readLine();
}
}catch(IOException e){
System.out.println(e);
}
}
}
プログラミング第5回
5
実行例
abc
abc
12345
12345
This is a pen.
This is a pen.
私は結城です。
私は結城です。
^Z
(UNIXなら^D)
プログラミング第5回
6
Copy2.java (List 7-4, p.151)
差分のみ
try {
String line;
while((line=reader.readLine())!=null){
System.out.println(line);
}
}catch(IOException e){
プログラミング第5回
7
CopyLower.java (List 7-5, p.153)
差分のみ
try {
String line;
while((line=reader.readLine())!=null){
String s=line.toLowerCase();
System.out.println(s);
}
}catch(IOException e){
プログラミング第5回
8
実行例
aBcDeF
abcdef
こんにちは
こんにちは
ABCDEFG
abcdefg
プログラミング第5回
9
Convert1.java (List 7-6, p.155)
差分のみ
try {
String line;
while((line=reader.readLine())!=null){
String s=line.replace('。', '.');
s=s.replace('、', ',');
System.out.println(s);
}
}catch(IOException e){
プログラミング第5回
10
課題
• 句読点に「、」および「。」を使った日本語テ
キストのファイルを用意する。ファイル名を
test1.txtとする。
• java Convert1 < test1.txt > test2.txt
– この意味は次のスライドで
• test2.txtをテキストエディタで開いて句読点
が正しく変換されていることを確認せよ.
プログラミング第5回
11
標準入出力とリダイレクション
標準入力
標準出力
プロセス
<
>
入力ファイル
出力ファイル
プログラミング第5回
12
String オブジェクトの栄枯盛衰
String オブジェクト
変数 line
reader.readLine(
)
こんにちは、こんにちは。
String オブジェクト
s=line.replace(....
)
こんにちは、こんにちは。
変数 s
s=s.replace(....
)
プログラミング第5回
String オブジェクト
こんにちは、こんにちは。
13
オブジェクトを参照するとは
• int, char などの基本型の変数は値を変数
に格納している.
• String をはじめとして,プログラマが定義す
る様々なクラスを型とする変数はすべて参
照型となる。変数に値が格納されるのでは
ない。C言語で言うポインタである。
• Java言語の世界はすべてポインタと言って
も過言でない.
プログラミング第5回
14
課題
• 問題7-1,7-2
• 余裕のある人は,問題7-3
プログラミング第5回
15