學習資料來源:斯坦福大學公開課程式設計方法cs106aJAVA(下載下傳中心有資源)
相關學習資料已上傳至下載下傳中心:學習過程中使用的代碼、筆記初稿以及課程講義(有興趣者可自行下載下傳)
學習過程中的大部分程式需要導入acm.jar包(已上傳至下載下傳中心,也可自行進入http://jtf.acm.org/ 進行下載下傳),
文本管理知識:
字元串的使用:
String:
String s = readLine();
char ch = s.charAt(0); —— 根據索引值傳回字元
println(ch);
String類的方法:
int length()——傳回字元串長度
chat charAt(int index)——根據索引提取字元
String substring(int p1, int p2)——取出p1到p2之間的字元串(包括p1不包括p2)
String substring(int p1)——取出p1到末尾的字元串
boolean equals(String s2)——判斷兩個字元串所含内容是否相同
int compareTo(String s2)——判斷兩字元串孰大孰小
int indexOf(char ch) int indexOf(String s)——搜尋 (傳回某個特定字元或字串的位置)
String toLowerCase() String toUpperCase()——實作大小寫轉換
str == str2 —— 表示str和str2是否是同一個對象,而不是表示其所含内容是否相等
str2.equals(str)——比較所含内容是否相等(傳回真假)
Character:
Char ch;
ch = Character.toUpperCase(ch);——将字母轉換為大寫
方法:
static boolean isDigit(char ch)——傳回是否為數字
static boolean isLetter(char ch)——傳回字元是否是字母
static boolean isLetterOrDigit(char ch)——傳回字元是否為字母或是否合法
static boolean isLowerCase(char ch)——傳回字元是否為小寫字母
static boolean isUpperCase(char ch) )——傳回字元是否為大寫字母
static boolean isWhiteSpace(char ch) )——傳回字元是否為空格
char是基本資料類型,其對應的類是Character
char與String的差別:(例如:将字母轉換為大寫)
char:
char ch;
Character.toUpperCase(ch);
String:
String str;
str.toUpperCase();
分詞器(Tokenizers):把一串完整的字元串切分成獨立的分詞——預設根據空格分詞
用法:
import java.Util.*; //引包
String line = “kkk ddd”; //給字元串指派
StringTokenizers tokenizer = new StringTokenizer(line);//根據空格對字元串進行分詞
for(int i = 0; tokenizer.hasMoreTokens(); i++){ //提取所有分好的詞
println(tokenizer.nextToken());
}
boolean hasMoreTokens();——判斷是否還有分詞,傳回true / false
String nextToken();——傳回下一個分詞(大概有點類似于棧,指針最初指向棧頂-空)
讀寫檔案(FILES) import java.io.*;
讀檔案(reading):
步驟:
1)打開檔案(Open)—— 和存儲在于磁盤的對象聯系起來
2)讀檔案(read)file (line by line)
3)關閉檔案(Close)
用法:
BufferedReader rd = //緩沖讀寫器
new BufferedReader(
new FileReader(“Student.txt”)); //檔案讀寫器
while(true){ //按順序逐行顯示檔案内容
String line = rd.readline();
if( line == null) break;
println(line);
}
rd.close;
BufferedReader(緩沖讀寫器) FileReader(檔案讀寫器)
寫檔案:
1)Open
PrintWriter
2))Write
.println
3)Close
BufferedReader rd = new BufferedReader(new FileReader(“Student.txt”)); //讀檔案
PrintWriter wr = new PrintWriter(new FileWriter("copy.txt"));//指定檔案寫入路徑
while (true) {//複制檔案
String line = rd.readLine();
if (line == null) break;
println("Read line: [" + line + "]");
wr.println(line);
}
rd.close();
wr.close();
異常(EXCEPTION)—— 程式執行過程中遇到異常時抛出異常(throws)(需要有對象接收異常)
用法:(以檔案操作為例)
try{
Code for file access. //需要對檔案進行操作
} catch(IOException ex)){ //捕捉異常
deal with exception.
private BufferedReader(String prompt) { //prompt為傳入的檔案名
BufferedReader rd = null;
while (rd == null) {
try {//讀取檔案操作
String name = readline(prompt);
rd = new BufferedReader(
new FileReader(name));
} Catch (IOException ex){
println(“bad file”);//讀取檔案出現異常時執行
}