算術相關的運算子
雖然實作上不常使用new String的方式創建字串,但是習慣上都會以equals比對字串。
也就是 String.valueOf() 這個參數多載的方法
需要使用基本資料型態的包裝類別
如 String 轉換成 Integer可以使用 Integer.parseInteger(String s)
+、-、*、/
,也就是加、減、乘、除這類運算子,另外%
,稱為模數運算子或餘除運算子。嘗試下列程式碼是否與預期的結果一致System.out.println(1 + 2 * 3); System.out.println(2 + 2 + 8 / 4); System.out.println(10 % 3);
- 算術運算子使用上與你學過的加減乘除一樣,也是先乘除後加減。
比較、條件運算
數學上有大於、等於、小於的比較運算,Java中也提供了這些運算子,這些運算子稱之為比較運算子,它們有大於、不小於、小於、不大於、等於以及不等於,比較條件成立時以boolean型態true表示,比較條件不成立時以false表示。嘗試下列程式碼是否與預期的結果一致System.out.printf("10 > 5 結果為 "+ (10 > 5)); System.out.printf("10 >= 5 結果為 "+ (10 >= 5)); System.out.printf("10 < 5 結果為 "+ (10 < 5)); System.out.printf("10 <= 5 結果為 "+ (10 <= 5)); System.out.printf("10 == 5 結果為 "+ (10 == 5)); System.out.printf("10 != 5 結果為 "+ (10 != 5));
- 字串與運算結果相加時,需以括號分隔。
- ==是兩個連續的=組成,而不是一個=,一個=是指定運算,這點必須特別注意。例如若變數x與y要比較是否相等,應該是寫成x == y,而不是寫成x = y。後者作用是將y的值指定給x,而不是比較運算x與y是否相等。對於類別型態宣告的參考名稱來說,兩個參考名稱使用==比較時,是比較兩個名稱是否參考至同一物件,之後介紹物件會再詳細介紹。
字串比較
String 型別的字串內容時,應使用 equals()方法。 因為若用new改寫內容時,會造成記憶體位址不符,嘗試下列程式碼是否與預期的結果一致 。String str1 = "hello"; String str2 = new String("hello"); String str3 = "hello"; System.out.println(str1+", "+str2+", "+str3); System.out.println(str1 == str2); System.out.println(str1 == str3);
雖然實作上不常使用new String的方式創建字串,但是習慣上都會以equals比對字串。
System.out.println(str1.equals(str2)); System.out.println(str1.equals(str3));
型態轉換
基本資料型態轉換成字串
String 類別中已經提供了將基本資料型態轉換成 String 的 static 方法
也就是 String.valueOf() 這個參數多載的方法
String.valueOf(boolean b);//將 boolean 變數 b 轉換成字串 String.valueOf(char c);//將char 變數 c 轉換成字串 String.valueOf(Object o);//將Object變數 o 轉換成字串
字串轉換成 數字的基本資料型態
要將 String 轉換成基本資料型態轉需要使用基本資料型態的包裝類別
如 String 轉換成 Integer可以使用 Integer.parseInteger(String s)
Double.parseDouble(String s);//將 s 轉換成 double Double.parseFloat(String s);//將 s 轉換成 float Integer.parseInt(String s);//將 s 轉換成 int
注意: 數值與字串在同1行顯示時,數值的部份請用括號包起來。例如"str"+1=2必須要寫成"str"+(1+2),沒有括號包起來會全部被視為字串相加。
綜合練習
利用鍵盤輸入2筆資料,將結果運算並顯示。BufferedReader buf = new BufferedReader(new InputStreamReader(System.in)); System.out.print("請輸入一個數字: "); int num1 = Integer.parseInt(buf.readLine()); System.out.print("請輸入一個數字: "); int num2 = Integer.parseInt(buf.readLine()); System.out.println("您輸入的文字: " + (num1+num2));可以思考不同的設計方法
public static void main(String[] args) throws IOException { BufferedReader buf = new BufferedReader(new InputStreamReader(System.in)); int num; System.out.print("請輸入一個數字: "); num = Integer.parseInt(buf.readLine()); System.out.print("請輸入一個數字: "); num+=Integer.parseInt(buf.readLine()); System.out.println("您輸入的文字: " + (num)); }
沒有留言:
張貼留言