參考 p.11-3 程式範例 MathEx.java
參考 p.11-7 程式範例 WrapperEx.java
參考 p.11-10 程式範例 AutoBoxOverload.java
public class Ex03_AutoBoxOverload { public static void show(Long num) { // Overloading System.out.println("Long num = " + num); } public static void show(Short num) { System.out.println("Short num = " + num); } public static void show(int num) { System.out.println("int num = " + num); } public static void main(String[] args) { Integer box = new Integer(80); // Boxing int unbox = box.intValue(); // Unboxing Integer autobox = 90; // autoboxing int autounbox = autobox + 5; // autounboxing short num1 = 1; long num2 = 2; show(num1); show(num2); } }
String 物件呼叫任何方法都不會改變自己實體的內容,稱為 Immutable
參考 p.11-12 程式範例 StringEx.java
import java.util.Scanner; public class Ex04_StringEx { public static void main(String[] args) { String s1 = "CSIM"; String s2 = "CSIM"; System.out.printf("s1=%s, s2=%s\n", s1, s2); System.out.printf("s1==s2 is %b\n", s1 == s2); System.out.printf("s1.equals(s2) is %b\n", s1.equals(s2)); Scanner sc = new Scanner(System.in); System.out.print("請輸入字串,例如大寫CSIM: "); String s3 = sc.next(); // 輸入 CSIM System.out.printf("s1=%s, s3=%s\n", s1, s3); System.out.printf("s1==s3 is %b\n", s1 == s3); System.out.printf("s1.equals(s3) is %b\n", s1.equals(s3)); System.out.println("--------------------"); String str = "A dog "; System.out.println(str.length()); System.out.println(str.concat("!")); System.out.println(str.trim().concat("!")); System.out.println(str.indexOf("d")); // 從0開始 System.out.println(str.charAt(3)); System.out.println(str.substring(2, 5)); System.out.println(str.replace("dog", "cat")); System.out.println(str.equalsIgnoreCase("A DOG ")); System.out.println(str.startsWith("A")); System.out.println(str.endsWith("dog ")); System.out.println(str.toLowerCase()); System.out.println(str.toUpperCase()); System.out.println(str); // str的內容 並未被改變 Immutable } }
StringBuilder 與 String類似,最大的差別在物件呼叫任何方法時,物件內的內容會皆被修改,稱為 Mutable
參考 p.11-16 程式範例 StringBuilderEx.java
java.util.Date 物件內儲存自從1970年1月1日0時0分0秒起至指定日期/時間的毫秒(千分之1秒)
參考 p.11-18 程式範例 DateEx.java
參考 p.11-20 程式範例 LocaleEx.java
參考 p.11-21 程式範例 NumberFormatEx.java
參考 p.11-24 程式範例 DateFormatEx.java
參考 p.11-25 表 11-10 規則運算式樣式說明
參考 p.11-27 程式範例 StringRegex.java
參考 p.11-29 程式範例 ScannerEx.java
參考 p.11-31 程式範例 ScannerAdv.java
import java.util.Scanner; public class Ex12_ScannerAdv { public static void main(String[] args) { String str = "1, 今天, true, 有午後雷陣雨, 0.1, 2, 0.39"; Scanner scan = new Scanner(str); scan.useDelimiter("\\s*,\\s*"); StringBuilder sbBoolean = new StringBuilder(""); StringBuilder sbInt = new StringBuilder(""); StringBuilder sbDouble = new StringBuilder(""); StringBuilder sbString = new StringBuilder(""); while (scan.hasNext()) { if (scan.hasNextBoolean()) sbBoolean.append(scan.nextBoolean() + " "); else if (scan.hasNextInt()) sbInt.append(scan.nextInt() + " "); else if (scan.hasNextDouble()) sbDouble.append(scan.nextDouble() + " "); else sbString.append(scan.next() + " "); } System.out.println("boolean字符:" + sbBoolean); System.out.println("int字符:" + sbInt); System.out.println("double字符:" + sbDouble); System.out.println("文字字符:" + sbString); } }