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 閱讀筆記 】