2_2.4 讀入字串
我們已經介紹許多處理數值的範例。接著,就來撰寫處理字串的程式吧!在開始撰寫之前,請試著先挑戰底下的題目。
思考題 :
執行 Chap2_2_1.class後,接著 輸入 abc。
錯誤訊息
我們得到和之前一樣的錯誤結果。接下來,我們將討論如何讀入字串。
Chap2_2_4.java
執行結果
程式說明:
1. 接受字串型態的變數會以String宣告,如同範例中的String s。
2. 字串變數s就會接收使用者從鍵盤輸入的字串,例如s = scanner.next();。
如果,我們將輸入字串 “天天旺”更改為 “天 天旺”,也就是在"天天"中間抽入一個空白字元。執行程式後,結果如下
Chap2_2_5.java
執行結果
程式說明:
程式Chap2_2_5.java利用nextLine()方法來讀入鍵盤輸入的字串。因為,nextLine()方法會讀入一整行的文字字串,就可以得到"早安! 天 天旺先生。"的輸出結果。
String 型態變數可以進行字串初始化,以及指定字串等動作。
Chap2_2_6.java
執行結果
程式說明:
字串變數str1會先初使化為 "AAA",然後再指定為"QQQ"。因此,str1的內容會由"AAA"變成"QQQ"。
思考題 :
Err2_2_3.java
錯誤訊息
為什麼這個結果不是 5+6=11 ?
Err2_2_4.java
錯誤訊息
練習題 2-5
製作一個讓會員輸入姓名。然後,系統會表達歡迎的程式。
練習題 2-6
利用String改寫的技巧。製作一支程式不管由鍵盤輸入什麼字串,輸出永遠是”來福”。
我們已經介紹許多處理數值的範例。接著,就來撰寫處理字串的程式吧!在開始撰寫之前,請試著先挑戰底下的題目。
思考題 :
執行 Chap2_2_1.class後,接著 輸入 abc。
X及Y 加減乘除運算。 請輸入整數X:abc |
錯誤訊息
Exception in thread "main" java.util.InputMismatchException at java.util.Scanner.throwFor(Unknown Source) at java.util.Scanner.next(Unknown Source) at java.util.Scanner.nextInt(Unknown Source) at java.util.Scanner.nextInt(Unknown Source) at Chap2_2_1.main(Chap2_2_1.java:12) |
我們得到和之前一樣的錯誤結果。接下來,我們將討論如何讀入字串。
Chap2_2_4.java
// 輸入姓名後,程式會跟您說早安(next()版) import java.util.Scanner; class Chap2_2_4 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("請問您的大名是:"); String s = scanner.next(); // 讀入字串 System.out.println("早安!" + s + "先生。"); // 顯示 } } |
執行結果
請問您的大名是:天天旺
早安!天天旺先生。
程式說明:
1. 接受字串型態的變數會以String宣告,如同範例中的String s。
2. 字串變數s就會接收使用者從鍵盤輸入的字串,例如s = scanner.next();。
如果,我們將輸入字串 “天天旺”更改為 “天 天旺”,也就是在"天天"中間抽入一個空白字元。執行程式後,結果如下
請問您的名字是:天 天旺 早安!天先生。 |
比較這兩個結果,我們可以發現,當使用 next()方法來讀入鍵盤輸入的字串時,空格和 tab 字元會視為字串分段的符號。因此,當我們在 "天 天旺"中插入一個空格時,該字串就會變成"天"和"天旺"這兩個字串。所以,字串變數 s 只會讀入字串"天"。接著,我們使用 nextLine() 方法,看看結果有何不同。
Chap2_2_5.java
//輸入姓名後,程式會跟您說早安(nextLine()版) import java.util.Scanner; class Chap2_2_5 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("請問您的姓名是:"); String s = scanner.nextLine(); // 讀入一整行字串 System.out.println("早安!" + s + "先生。"); // 輸出 } } |
執行結果
請問您的姓名是:天 天旺
早安! 天 天旺先生。
程式說明:
程式Chap2_2_5.java利用nextLine()方法來讀入鍵盤輸入的字串。因為,nextLine()方法會讀入一整行的文字字串,就可以得到"早安! 天 天旺先生。"的輸出結果。
String 型態變數可以進行字串初始化,以及指定字串等動作。
Chap2_2_6.java
// 字串的初始化及改寫 class Chap2_2_6 { public static void main(String[] args) { String str1 = "AAA"; // 初始化 String str2 = "QQQ"; // 初始化 str1 = "TTT"; // 改寫(將TTT指定給str1) System.out.println("字串str1為 " + str1 + "。"); // 顯示 System.out.println("字串str2為 " + str2 + "。"); // 顯示 } } |
執行結果
字串str1為 TTT。
字串str2為 QQQ。
程式說明:
字串變數str1會先初使化為 "AAA",然後再指定為"QQQ"。因此,str1的內容會由"AAA"變成"QQQ"。
思考題 :
Err2_2_3.java
public class Err2_2_3 { public static void main(String[] args) { //求取 x + y 之和 int x = 5; String y = "6"; System.out.println("x + y = " + (x + y)); } } |
錯誤訊息
x + y = 56 |
為什麼這個結果不是 5+6=11 ?
Err2_2_4.java
class Err2_2_4{ public static void main(String[] args){ String str = qq ; } } |
錯誤訊息
D:\chap2\chap2\Err2_2_4.java:3: cannot find symbol symbol : variable qq location: class Err2_2_4 String str = qq ; ^ 1 error |
練習題 2-5
製作一個讓會員輸入姓名。然後,系統會表達歡迎的程式。
大福會員系統-會員登入 請輸入您的姓名。 -------------------------------- 姓 : 王 名 : 大旦 歡迎 王大旦 先生/小姐 。 |
練習題 2-6
利用String改寫的技巧。製作一支程式不管由鍵盤輸入什麼字串,輸出永遠是”來福”。
請輸入 : 王小明 永遠是來福 |
0 意見:
張貼留言