標籤:src 顯示 regex 最大值 ati lsp tin cin throw
關鍵詞:String類、StringBuffer類、System類、Math類、Random類、Date類、Calendar類、DateFormat類 API (Application Programming Interface)指的是API。一、String類和StringBuffer類 String類和StringBuffer類位與java.lang包中。1、String類
①字串都是對象
②一旦初始化就不可以被更改,因為是常量。
③通過String類的建構函式可以知道,將位元組數組或字元轉成字串。
2、String類的構造方法
| 方法聲明 |
功能描述 |
| String() |
建立一個內容為空白的字串 |
| String(char[] value) |
根據指定的字元數組建立對象 |
| String(String value) |
根據指定的字串內容建立對象 |
3、String類常用方法:(包左不包右)
| int indexOf(int ch) |
int lastIndexOf(int ch) |
| char charAt(int index) |
boolean endsWith(String suffix) |
| int length() |
boolean equals(Object anObject) |
| boolean isEmpty() |
boolean startsWith(String prefix) |
| boolean contains(CharSequence cs) |
String toUpperCase() |
| String toLowerCase() |
String valueOf(int i) |
| char[] toCharArray() |
String replace(CharSequence oldstr,CharSequence newstr) |
| String[] split(String regex) |
String substring(int beginIndex) |
| String substring(int beginIndex,int endIndex) |
String trim() |
樣本:
1 public class Example02 { 2 public static void main(String[] args) { 3 new Thread(new One()).start(); 4 new Thread(new Two()).start(); 5 new Thread(new Three()).start(); 6 new Thread(new Four()).start(); 7 new Thread(new Five()).start(); 8 } 9 }10 //字串的基本操作11 class One implements Runnable{12 public void run() {13 String s = "abcdedcba";14 System.out.println("字串的長度為:"+s.length());15 System.out.println("字串中第一個字元:"+s.charAt(0));16 System.out.println("字元c中第一個出現的位置:"+s.indexOf(‘c‘));17 System.out.println("字元c中最後出現的位置:"+s.lastIndexOf(‘c‘));18 System.out.println("_____________");19 }20 }21 //字串的判斷操作22 class Two implements Runnable {23 public void run() {24 String s1 = "abcdedcba";25 String s2 = "ABCDEDCBA";26 System.out.println("字串結尾是否是A:" + s1.endsWith("A"));27 System.out.println("字串s1與s2是否相同:" + s1.equals("ABCDEDCBA"));28 System.out.println("字串s1是否為空白:" + s1.isEmpty());29 System.out.println("字串s1是否以abc開頭:" + s1.startsWith("abc"));30 System.out.println("字串s1是否包含abc:" + s1.contains("abc"));31 System.out.println("將字串s1轉為大寫:" + s1.toUpperCase());32 System.out.println("將字串s2轉為小寫:" + s1.toLowerCase());33 System.out.println("_____________");34 }35 }36 //字串的轉換操作37 class Three implements Runnable{38 public void run() {39 String s3 = "abcd";40 System.out.print("將字串轉為字元數組後的結果");41 char[] charArray=s3.toCharArray();42 for (int i = 0;i<charArray.length;i++){43 if(i!=charArray.length-1){44 System.out.print(charArray[i]+",");45 }else46 System.out.println(charArray[i]);47 }48 System.out.println("將int值轉換為String類型之後的結果:"+String.valueOf(123));49 System.out.println("_____________");50 }51 }52 //字串的替換和去除空格操作53 class Four implements Runnable{54 public void run() {55 String s = "itcase";56 System.out.print("將it替換為cn.it的結果:"+s.replace("it","cn.it"));57 String s4 = " i t c a s e ";58 System.out.println("去除字串兩端空格後的結果:"+s4.trim());59 System.out.println("去除字串所有空格後的結果:"+s4.replace(" ",""));60 System.out.println("_____________");61 62 }63 }64 //字串的截取和分割65 class Five implements Runnable{66 public void run() {67 String str = "羽毛球-籃球-乒乓球";68 System.out.println("從第五個字元截取到末尾的結果:"+str.substring(4));69 System.out.println("從第五個字元截取到第六個字元的結果:"+str.substring(4,6));70 System.out.print("分割後的字串數組中的元素依次為:");71 String[] strArray = str.split("-");72 for (int i = 0;i<strArray.length;i++){73 if(i!=strArray.length-1){74 System.out.print(strArray[i]+",");75 }else {76 System.out.println(strArray[i]);77 }78 }79 System.out.println("_____________");80 }81 }
運行結果:
字串的長度為:9字串中第一個字元:a字元c中第一個出現的位置:2字元c中最後出現的位置:6_____________字串結尾是否是A:false字串s1與s2是否相同:false字串s1是否為空白:false字串s1是否以abc開頭:true字串s1是否包含abc:true將字串s1轉為大寫:ABCDEDCBA將字串s2轉為小寫:abcdedcba_____________將字串轉為字元數組後的結果a,b,c,d將int值轉換為String類型之後的結果:123_____________從第五個字元截取到末尾的結果:籃球-乒乓球從第五個字元截取到第六個字元的結果:籃球分割後的字串數組中的元素依次為:將it替換為cn.it的結果:cn.itcase去除字串兩端空格後的結果:i t c a s e去除字串所有空格後的結果:itcase_____________羽毛球,籃球,乒乓球_____________
4、StringBuffer:字串緩衝區,類似是一個字元容器,將任何資料轉變字串進行添加。
5、StringBuffer類常用方法:
| StringBuffer append(char c) |
StringBuffer insert(int offset ,String str) |
| StringBuffer deleteCharAt(int index) |
StringBuffer delete(int start, int end) |
| StringBuffer replace(int start ,int end, String str) |
void setCharAt(int index,char ch) |
| String toString() |
StringBuffer reverse() |
樣本:
1 public class Example08 { 2 public static void main(String[] args) { 3 add(); 4 new Thread(new remove()).start(); 5 System.exit(0); 6 new Thread(new alter()).start(); 7 } 8 public static void add() { 9 System.out.println("1、添加——————————————————");10 StringBuffer sb = new StringBuffer(); //定義一個字串緩衝區11 sb.append("abcdefg");//在末尾添加字串12 System.out.println("append添加結果:" + sb);13 sb.insert(2, "123");14 System.out.println("insert添加結果:" + sb);15 }16 }17 class remove implements Runnable{18 @Override19 public void run() {20 System.out.println("2、刪除——————————————————");21 StringBuffer sb = new StringBuffer("abcdefg");22 sb.delete(1,5);//指定範圍刪除23 System.out.println("刪除指定範圍結果:"+sb);24 sb.deleteCharAt(2);//指定位置刪除25 System.out.println("刪除指定位置結果:"+sb);26 sb.delete(0,sb.length());//清除緩衝區27 System.out.println("清空緩衝區結果:"+sb);28 }29 }30 class alter implements Runnable{31 @Override32 public void run() {33 System.out.println("3、修改——————————————————");34 StringBuffer sb = new StringBuffer("abcdefg");35 sb.setCharAt(1,‘p‘);//修改指定位置字元36 System.out.println("修改指定位置字元結果:"+sb);37 sb.replace(1,3,"qq");//替換指定位置字串或字元38 System.out.println("替換指定位置字串或字元結果:"+sb);39 System.out.println("字串翻轉結果:"+sb.reverse());40 }41 }
運行結果:
1、添加——————————————————append添加結果:abcdefginsert添加結果:ab123cdefg2、刪除——————————————————刪除指定範圍結果:afg刪除指定位置結果:af清空緩衝區結果:
6、StringBuffer與String的區別
①String類表示的字串是常量,一旦建立後,內容和長度都是無法改變的,而StringBuffer表示字元容器,其內容和長度都可以隨時改變。
②String類覆蓋了Object類的equals()方法,而StringBuffer類沒有覆蓋。
③String類對象可以用操作符+進行串連,而StringBuffer類對象之間不能。
二、System類常用方法
| static void exit(int status) |
static long gc() |
| static long currentTimeMills() |
static void arraycopy(Object src ,int srcPos,Object dest,int destPos,int length) |
| static Properties getProperties() |
static String getProperty(String key) |
Runtime類用於表示虛擬機器運行時的狀態,它用於封裝JVM虛擬機器進程。執行個體方法:Runtime run = Runtime.getRuntime(); 三、Math類與Random類1、Math類是數學操作類,靜態方法。如
1 public class Testt01 { 2 public static void main(String[] args) { 3 System.out.println("取絕對值:"+Math.abs(-2)); 4 System.out.println("向上取整:"+Math.ceil(2.1)); 5 System.out.println("四捨五入:"+Math.round(2.1)); 6 System.out.println("向下取整:"+Math.floor(2.1)); 7 System.out.println("取最大值:"+Math.max(3.2,2.1)); 8 System.out.println("取最小值:"+Math.min(3.21,2.1)); 9 System.out.println("反餘弦:"+Math.acos(Math.PI/90));10 System.out.println("反正弦:"+Math.asin(Math.PI/45));11 System.out.println("反正切:"+Math.atan(12));12 System.out.println(Math.atan2(12,12));13 System.out.println("餘弦:"+Math.cos(Math.PI/3));14 System.out.println("正弦:"+Math.sin(30*Math.PI/180));//單位為弧度,30度用弧度表示(30*Math.PI/180);15 System.out.println("自然對數的底數e:"+Math.E);16 System.out.println("自然對數的底數e的n次方:"+Math.exp(12));17 System.out.println("圓周率:"+Math.PI);18 System.out.println("平方根:"+Math.sqrt(5));19 System.out.println("產生一個大於等於0.0小於1.0的隨機值:"+Math.random());
20 System.out.println("2的3次方:"+Math.pow( 2,3 ));
21 System.out.println( System.currentTimeMillis() );//獲得當前系統時間,運行程式最省記憶體
22 System.out.println( new Date().getTime() );
23 System.out.println( Calendar.getInstance().getTime() );
24
25 }
26 }
運行結果:
1 取絕對值:2 2 向上取整:3.0 3 四捨五入:2 4 向下取整:2.0 5 取最大值:3.2 6 取最小值:2.1 7 反餘弦:1.5358826490960904 8 反正弦:0.06987000497506388 9 反正切:1.487655094906455310 0.785398163397448311 餘弦:0.500000000000000112 正弦:0.4999999999999999413 自然對數的底數e:2.71828182845904514 自然對數的底數e的n次方:162754.7914190039215 圓周率:3.14159265358979316 平方根:2.2360679774997917 產生一個大於等於0.0小於1.0的隨機值:0.366045471773395518 2的3次方:8.019 149897643508020 149897643508521 Sun Jul 02 14:20:35 CST 2017
2、Rondom類,非靜態方法Rondom類構造方法:Rondom();Rondom( long seed);Rondom類常用方法
| boolean nextBoolean() |
double nextDouble() |
float nextFloat() |
| int nextInt() |
int nextInt(int n) |
long nextLong() |
樣本:
1 public class Example16 { 2 public static void main(String[] args) { 3 new Thread(new One()).start(); 4 new Thread(new Two()).start(); 5 new Thread(new Three()).start(); 6 } 7 } 8 class One implements Runnable{ 9 public void run() {10 Random r = new Random();//不傳入種子11 // 隨機產生10個[0,100)之間的整數12 for (int x=0;x<10;x++){13 System.out.println(r.nextInt(100));14 }15 System.out.println("_____________");16 }17 }18 class Two implements Runnable{19 public void run() {20 Random r = new Random(13);//不傳入種子21 // 隨機產生10個[0,100)之間的整數22 for (int x=0;x<10;x++){23 System.out.println(r.nextInt(100));24 }25 System.out.println("_____________");26 }27 }28 class Three implements Runnable{29 public void run() {30 Random r = new Random();31 System.out.println("產生float類型隨機數"+r.nextFloat());32 System.out.println("產生0~100之間int類型隨機數"+r.nextInt(100));33 System.out.println("產生double類型隨機數"+r.nextDouble());34 System.out.println("_____________");35 }36 }
運行結果:
1 90 2 98 3 23 4 17 5 97 6 66 7 10 8 42 9 1010 6711 _____________12 9213 014 7515 9816 6317 1018 9319 1320 5621 1422 _____________23 產生float類型隨機數0.958026924 產生0~100之間int類型隨機數4425 產生double類型隨機數0.1398726690347320626 _____________
四、針對日期類型的操作類有三個,分別是java.util.Date,java.util.Calendar和 java.text.DateFormat 。1、Date類用於表示日期和時間:其中構造方法: ①Date()用於建立當前日期時間的Date對象, ②Date(long date)用於建立指定時間的Date對象。建立如: Date date1 = new Date(); Date date2 = new Date(9666546565L ); 2、Calendar類用於完成日期和時間欄位的操作,為抽象類別,不能被執行個體化,在程式中需要調用其靜態方法getInstance()來得到一個Calendar對象,然後調用其相應的方法: Calendar calendar = Calendar.getInstance(); Calendar常用方法:
| int get(int field) |
返回指定日曆欄位的值,如 :calendar.(Calendar.YERR); |
| void add(int field,int amount) |
void set(int field,int value) |
| void set(int year,int month,int date) |
void set(int year,int month,int date,int hourOfDay,int minute,int second) |
注意:Calendar.MONTH欄位月份的起始值是從0開始而不是1 。 樣本:
1 public class Example { 2 public static void main(String[] args) { 3 new Thread(new One()).start(); 4 new Thread(new Two()).start(); 5 } 6 } 7 class One implements Runnable { 8 public void run() { 9 Date date = new Date();10 Date date2 = new Date(966666666666L);11 System.out.println(date);12 System.out.println(date2);13 System.out.println("--------------");14 }15 }16 class Two implements Runnable {17 public void run() {18 Calendar calendar = Calendar.getInstance();//擷取表示目前時間的Calendar19 int year = calendar.get(Calendar.YEAR);20 int month = calendar.get(Calendar.MONTH)+1;21 int date = calendar.get(Calendar.DATE);22 int hour = calendar.get(Calendar.HOUR);23 int minute = calendar.get(Calendar.MINUTE);24 int second = calendar.get(Calendar.SECOND);25 System.out.println("目前時間為:"+year+"年"+month+"月"+date+"日"+hour+"時"+minute+"分"+second+"秒");26 System.out.println("--------------");27 }28 }
運行結果:
Sun Jul 02 14:29:41 CST 2017Sat Aug 19 14:31:06 CST 2000-------------目前時間為:2017年7月2日2時29分41秒--------------
3、DateFormat類,專門用於將日期格式化為字串或者用特定格式顯示的日期文字轉換成一個Date對象,抽象類別不可執行個體化,但提供靜態方法。 SimpleDateFormat ,DateFormat類子類,可通過new建立執行個體對象, 是一個以語言環境敏感的方式來格式化和分析日期的類。SimpleDateFormat 允許你選擇任何使用者 自訂日期時間格式來運行。如: SimpleDateFormat ft = new SimpleDateFormat ("E yyyy.MM.dd ‘at‘ hh:mm:ss a zzz"); 這一行代碼確立了轉換的格式,其中 yyyy 是完整的公元年,MM 是月份,dd 是日期,HH:mm:ss 是時、分、秒。 注意:有的格式大寫,有的格式小寫,例如 MM 是月份,mm 是分;HH 是 24 小時制,而 hh 是 12 小時制。 以上執行個體編譯運行結果如下: Current Date: Sun 2014.07.18 at 14:14:09 PM PDT 其中parse(String source)方法,它試圖按照給定的SimpleDateFormat 對象的格式化儲存來解析字串。樣本:
1 public class Example { 2 public static void main(String[] args) throws Exception{ 3 // 建立一個SimpleDateFormat 對象 4 SimpleDateFormat df1 = new SimpleDateFormat( 5 "Gyyyy年MM月dd日:今天是yyyy年的第D天,E"); 6 // SimpleDateFormat 對象的日期模板格式化Date對象 7 System.out.println(df1.format(new Date())); 8 9 SimpleDateFormat df2 = new SimpleDateFormat("yyyy年MM月dd日");10 String dt = "2012年8月3日";11 // 將字串解析成Date對象12 System.out.println(df2.parse(dt));13 }14 }
運行結果:
AD2017年07月02日:今天是2017年的第183天,SunFri Aug 03 00:00:00 CST 2012
Java入門——(5)Java API