參考 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);
}
}