2016年3月13日 星期日

StringTokenizer切割字串

練習題目

撰寫一個程式讓使用者輸入一行英文句子,請以英文的標點符號、空白字元等為分界取出每個字符(token),其中大寫英文字母要全部轉為小寫。如果token為數字字串,便將它累加起來。


程式範例

StringTokenizer token = new StringTokenizer(inputstr, " .,:;*/\t");
while (token.hasMoreTokens()) {
str = token.nextToken();
System.out.println(str);// 印出切割後的字串

// 判斷字串中是否只有數字
if (str.matches("[0-9|\\.]*")) {
// 數字累加
sum += Integer.parseInt(str);
}
}

參考資料

Java - StringTokenizer (分割String) @ KwCheng's blog :: 痞客邦 PIXNET ::
使用正則表示式(Regular expression)

英文大小寫轉換

練習題目

請要求使用者連續輸入字串,每一行字串皆是一個英文句子。
請依標點符號隔開,將未出現過的單字存入陣列,存入陣列中的單字必須轉換成小寫。
注意:非由英文字母組成的單字不存入陣列,最後請印出陣列內容,請依字串大小由小到大排列。

程式範例

// 英文大寫轉小寫
String str = "TcuMi";
String str = str.toLowerCase();
System.out.println(str);
// 印出結果為"tcumi"


// 英文小寫轉大寫
String str = "TcuMi";
String str = str.toUpperCase();
System.out.println(str);
// 印出結果為"TCUMI"

參考資料

[Java]大小寫英文字母轉換 | 佛祖球球

判斷是否為英文字串

練習題目

請要求使用者連續輸入字串,每一行字串皆是一個英文句子。
請依標點符號隔開,將未出現過的單字存入陣列,存入陣列中的單字必須轉換成小寫。
注意:非由英文字母組成的單字不存入陣列,最後請印出陣列內容,請依字串大小由小到大排列。

程式範例

// 判斷字串中是否只有英文
String s = "TcuMi";
for (int j = 0; j < s.length(); j++) {
if ((s.charAt(j) >= 'A' && s.charAt(j) <= 'Z')
|| (s.charAt(j) >= 'a' && s.charAt(j) <= 'z'))
// 字元依序判斷
}

String s = "TcuMi";
if (s.matches("[a-zA-Z|\\.]*")) {
// 利用match函式比對字串
// [a-zA-Z0-9]表示範圍為a-z或A-Z或0-9
}

參考資料

昭佑.天翔: Java 判斷檔名字串只有英文 / 數字, 而無中文字
使用正則表示式(Regular expression)

2016年3月6日 星期日

輸入字串轉換成數字做判斷

練習題目

撰寫一個程式,連續要求使用者輸入資料,包括學生姓名與其成績,輸入完後使用者可以進一步輸入編號來找出對應的學生資料;如果使用者在輸入成績時輸入不是合法的數字字串,則程式必須可以印出錯誤訊息加以警告(提示:NumberFormatException)。


程式範例

String input = new String();
System.out.printf("請輸入學生成績:");
input = scanner.next();
int grade = Integer.parseInt(input);
if (grade  < 0 && grade  > 100) {
System.out.println("成績範圍須介於0~100之間");


參考資料

Java - String與基本資料型態之間的轉換 @ 資訊理想化的延伸 :: 痞客邦 PIXNET ::

產生隨機亂數存入陣列

練習題目

撰寫一個程式,先初始化一個數字陣列,在將此陣列中所有的數字的總和與平均計算出來。


程式範例

// 宣告一個大小為10的數字陣列
int[] num = new int[10];

// 隨機產生1~100間的數字存入數字陣列中
for (int i = 0; i < 10; i++) {
Random ran = new Random();
num[i] = ran.nextInt(100) + 1;
}

ran.nextInt(變數個數) + 起始值;


參考資料



2015年3月10日 星期二

Assignment of Week 2

參考資料:


試題1