l Utility Classes
l class、method、constructor、Boolean、...都是object。
l System Properties(系統參數)
用途 |
取出或設定系統參數 |
舉例 |
java –Deigh=8 Test
println(System.getProperty(“java.version”)); //1.4.2
System.setProperty(“two”,2);
Integer wi = Integer.getInteger(“two”);
println(wi.toString); //2
System.setProperty(“love”,”true”);
boolean b = Boolean.getBoolean(“love”); //true
Ingeger wi2 = Integer.getInteger(“eigh”,999);
println(wi2.toString()); //若最上面那行有加-D的話為”8”,否則為”999” |
methods |
Integer |
static Integer getInteger(String key)
static Integer getInteger(String key, int val)
static Integer getInteger(String key, Ingeter val) |
Long |
static Long getLong(String key)
static Long getLong(String key, int val)
static Long getLong(String key, Long val) |
Boolean |
static boolean getBoolean(String key) |
|
注意 |
參數”key”指的是propery name,”val”是defalut value,若system.propery內(java.version、java.home....)沒有定義所指定的key,則return ”val”。 |
新增系統參數 |
用System所定義的class method |
System.setProperty(“abc”,”33”); |
啟動java interpreter時使用-D option |
java –Dabc=88 Test |
|
取得系統參數 |
System所定義的class method |
n String val = System.getProperty(“abc”);
u 取key為”abc”的系統參數,若沒定義”abc”則傳回”null”。
n String val = System.getProperty(“abc”,”33”);
u 取key為”abc”的系統參數,若沒定義”abc”則傳回”33”。 |
Integer、Long及Boolean所定義的class methods |
n Integer wi = getInteger(“abc”);
u 取key為”abc”的系統參數,若沒定義”abc”或numeric format不合,則傳回null。
n Ingeger wi = getInteger(“abc”,33);
u 取key為”abc”的系統參數,若沒定義”abc”則傳回”33”。 |
|
l The Math Class
注意 |
n 是一個final class,故不可被繼承,且所有的mebers都是static members。
n 只有private constructor,故無法create一個Math object(也不須create Math object)
n 不會throws任何的exception。
n 對負數做開根號sqrt()所得結果為NaN。
n Long、Ingeger的最小絕對值是負的。 |
舉例 |
n sin 45度角的值計算方式:(r即為最後的值)
u double d = Math.toRadians(45.5); double r = Math.sin(d); |
簡單的記 |
(int、float、long、double) |
abs、max、min |
奇怪的 |
double random()、
long round(double a)、int round(float a) |
只有double |
剩下的其他method |
|
constants |
n static final double E // e(2.718) ; static final double PI // π(3.141) |
methods |
三角函數 |
double sin(double a) // sign of a
double cos(double a) // cosign of a
double tan(double a)// tangent of a
//”a”是angle(角度)單位為radians(弧度) |
角度 / 弧度 |
double toRadians(double deg) // 單位為degrees(度數)
double toDegrees(double rad) // 單位為radians(弧度) |
次方 |
double exp(double a) // ea
double pow(double a,double b) // ab
double sqrt(double a) // a開根號 |
亂數 |
double random()//大於0.0但小於1.0的隨機數值 |
最大/最小 整數 |
double ceil(double a) // >= ”a”的最小整數(無條件進入)
double floor(double a) //<= ”a”的最大整數(無條件捨去) |
最接近”a”的整數 |
double rint(double a)
int round(float a)
long round(double a) |
絕對值 |
int abs(int a)
long abs(long a)
float abs(float a)
double abs(double a) |
較大值 |
int max(int a, int b)
long max(long a, long b)
float max(float a, float b)
double max(double a, double b) |
較小值 |
int min(int a, int b)
long min(long a, long b)
float min(float a, float b)
double min(double a, double b) |
|
l String and StringBuffer Classes
String |
n String object是不可變的,產生之後”值”就不可被改變,大部份的method都是return一個新的string object,所以String class內不會有setXxxx() method。
n 空值不能呼叫concat(),否則會runtime error。
產生字串 |
u toString()
u static String valueOf(type a)//type為各個primite type |
字串長度 |
instance method — int length() |
取出字串 |
u String substring(ing begIndex)
//”abcdef”.substring(1)èbcdef
u String substring(int begIndex,int endIndex)
//”abcdef”.substring(1,3)èbcde |
串接字串 |
u String concat(String str)//附加在原string的後面 |
取出字元 |
u char charAt(int index)
//char ch = “abcd”.charAt(2)è傳回’c’
u void getChars(int srcBegin,int srcEnd,char[] dst,int dstBeg)
//char[] ca=new char[5] ; abcdef.getChars(1,4,ca,1);
èca內容為{‘\u0000’,’b’,’c’,’d’,’\u0000’}
u char[] toCharArray() //把String轉換為char array |
比較字串 |
u boolean equals(Object anObject)
u boolean equalsIgnoreCase(String anotherString)
u boolean startsWith(String prefix)
u boolean startsWith(String prefix,int offset)
u boolean endsWith(String suffix)
u int compareToIgnoreCase(String str)
u int compareTo(String argStr)
//int i = str.compareTo(argStr)è0為str與argStr相同 |
尋找字串 |
u int indexOf(int ch);int indexOf(int ch, int fromIndex)
u int lastIndexOf(int ch);int lastIndexOf(int ch, int fromIndex)
u int indexOf(String str);int indexOf(String str,int fromIndex)
u int lastIndexOf(String a);int lastIndexOf(String a,int frIndex)
// return -1代表沒找到 |
取代字元 |
u String replace(char oldChar, char newChar)
// “abbbcdeb”.replace(‘b’,’k’)è”akkkcdek” |
Trim |
u String trim()
//移除string前後兩端的”white space”(如空白或’\t’...) |
intern |
u intern()
//將string加入string pool(若pool尚無相同content的string object) |
|
StringBuffer |
n StringBuffer是可變的。
n StringBuffer沒有override equals()
續接字串 |
u StringBuffer append(Object obj)
u StringBuffer append(String str)
u StringBuffer append(char[] str)
u StringBuffer append(char[] str, int offset, int len)
u StringBuffer append(boolean b);StringBuffer append(char c)
u StringBuffer append(int i);StringBuffer append(long l)
u StringBuffer append(float f);StringBuffer append(double d) |
插入字串 |
u StringBuffer insert(int index, char[] str, int offset, int len)
u StringBuffer insert(int offset, Object obj)
u StringBuffer insert(int offset, String str)
u StringBuffer insert(int offset, char[] str)
u StringBuffer insert(int offset, boolean b)
u StringBuffer insert(int offset, char c)
u StringBuffer insert(int offset, int i)
u StringBuffer insert(int offset, long l)
u StringBuffer insert(int offset, float f)
u StringBuffer insert(int offset, double d) |
刪除字串 |
u StringBuffer delete(int start, int end)
u StringBuffer deleteCharAt(int index) |
取代字串 |
u StringBuffer replace(int start, int end, String str) |
顛倒字串 |
u StringBuffer reverse() |
| 来自:【 Garfield 的 SCJP 閱讀筆記 】
|