String類:字符串是一個特殊的對象。 字符串對象最大特點:字符串一旦初始化就不可以被改變。 String s1= "abc";// s1是一個類類型變量,“abc”是一個對象。在其內存中有一個對象。 String s2= new String ("abc");//在其內存中有兩個對象。 String s3= "abc"; s1.equals(s2);結果爲true。因爲String類複寫打了Object類中equals方法,該方法用於判斷字符串是否相同。 s1==s3;結果爲true。因爲當定義字符串常量時,虛擬機會查看常量池,發現其中有相同的字符串對象時,便不會再開闢空間了。
String類提供的對字符串的操作方法有: 1、獲取。 1.1 字符串中的包含字符數,也就是字符串的長度。 int length():獲取長度。 1.2根據位置獲取位置上某個字符。 char charAt(int index); 1.3 根據字符獲取該字符在字符串中位置。(如果沒有找到字符或字符串,返回-1) int indexof(char ch):返回的是ch在字符串中第一次出現的位置。 int indexof (char ch , int fromIndex) : 從fromIndex指定位置開始,獲取ch在字符穿中出現的位置。 int indexof(string str):返回的是str在字符串中第一次出現的位置。 int indexof (string str , int fromIndex) : 從fromIndex指定位置開始,獲取str在字符穿中出現的位置。 int lastIndexOf("a"):這時,字符串會從最後一個字符向前查找,但是索引不變,一樣是從前面開始計算。 2、判斷。 2.1 字符串中是否包含某一個子串。 boolean contains(str) : 特殊之處,indexOf(str):可以索引str第一次出現位置,如果返回-1,表示該str不在字符串中存在,if( str.indexof("aa")!=-1),而且該方法既可以判斷,又可以獲取出現的位置。 2.2 字符中是否有內容。 boolean isEmpty ():原理就是判斷長度是否爲0. 2.3 字符串是否是以指定內容開頭。 boolean startsWith ( str ) ; 2.4 字符串是否是以指定內容結尾。 Boolean endsWith ( str ); 2.5 判斷字符串內容是否相同。複寫了Object類中的equals方法。 boolean equals ( str ); 2.6 判斷內容是否相同,並忽略大小寫。 boolean equalsIgnoreCase ( ); 3、轉換。 3.1 將字符數組轉成字符串。 構造函數:String (char[]); String ( char [] , offset , count ) : 將字符數組中的一部分轉成字符串。offset起始位置,count個數。 靜態方法:static String copyValueOf ( char [] ); static String copyValueOf ( char [] data , int offset , int count ) static String valueOf ( char [] ); 3.2 將字符串轉成字符數組。 char [] toCharArray( ); 3.3 將字節數組轉成字符串。 String ( byte[ ] ) String ( byte[ ] , offset , count ) :將字節數組中的一部分轉成字符串。 3.4 將字符串轉成字節數組。 byte[] getBytes ( ); 3.5 將基本數據類型轉成字符串。 static String valueOf (int) static String valueOf (double) 特殊: 字符串和字節數組在轉換過程中,是可以指定編碼表的。 4、替換。 String replace ( oldchar , newchar )//可以替換字符串。如果要替換的字符或字符串不存在,返回原串。 5、切割。 String[] split ( regex );//傳入的參數是切割的分隔字符或字符串。返回值是字符串數組。 6、子串。獲取字符串的一部分。 String substring ( begin );//從指定位置開始到結尾。 String substring ( begin ,end );//包含頭不包含尾。 7、轉換,去除空格,比較。 7.1 將字符串轉成大寫或小寫。 String toUpperCase ( ); String toLowerCase ( ); 7.2 將字符串兩端的多個空格去除。 String trim ( ); 7.3 對兩個字符串進行自然順序的比較。 int compareTo ( string );
---------------------------------------------------------------------------------- StringBuffer:字符串緩衝區。 l 字符串的組成原理就是通過該類實現的。 l StringBuffer可以對字符串內存進行增刪。 l StringBuffer是一個容器。 l 很多方法與String相同。 l StringBuffer是可變長度的。 l 可以操作多個數據類型。 l 最終會通過toString方法變成字符串。 基本操作: 1、存儲 StringBuffer append ( ) :將指定數據作爲參數添加到已有數據結尾處。 StringBuffer insert ( index ,數據 ):可以將數據插入到指定index位置。 2、刪除 StringBuffer delete ( start , end ):刪除緩衝區中的數據,包括start,不包含end。 StringBuffer deleteCharAt ( index ):刪除指定位置的字符。 3、獲取。 char charAt ( int index ) int indexOf (String str) int lastIndexOf ( String str) int length ( ) String substring ( int start , int end ) 4、修改。 StringBuffer replace ( start ,end ,string ); void setCharAt ( int index , char ch ); 5、反轉。 StringBuffer reverse ( ) ; 6、將緩衝去中指定數據存儲到指定字符數組中。 void getChars ( int srcBegin , int srcEnd , char [] dst , int dstBegin) 將緩衝去中的從begin到end,不包括end 的數據轉存到dst字符數組中,從索引dst Begin開始。
JDK1.5版本之後出現了StringBuilder。 StringBuilder的方法與的方法幾乎完全相同。 StringBuilder是線程不同步。所以它更加效率,但是當有多線程時應該使用buffer。 StringBuffer是線程同步。 以後開發,建議使用StringBuilder。 JDK升級的三個因素是: 1、提高效率 2、簡化書寫 3、提高安全性。
基本數據類型對象包裝類。 基本數據類型 對象包裝類 byte Byte short Short int Integer long Long boolean Boolean float Float double Double char Character
基本數據類型對象包裝類的最常見作用,就是用於基本數據類型和字符串類型之間做轉換。 基本數據類型轉成字符串: 1、基本數據類型+" " 2、基本數據類型.toString( 基本數據類型值 ); 如:Integer.toString ( 34 );//將34整數變成“34” 字符串轉成基本數據類型。 1、xxx a = Xxx.parseXxx(String); 2、int a = Interger.parseInt ( "123" ); 3、double b = Double.parseDouble ( "12.36" ); 4、boolean c = Boolean.parseBoolean ( "true");
十進制轉成其他進制。 toBinaryString ( ); toHexString ( ); toOctalString ( ); 其他進制轉成十進制。 parseInt ( string,radix); String:代表要轉化爲10進制的數。 Radix:表示被轉化的進制。 Integer a = 127. Integer b = 127. a == b結果爲true。因爲a和b執行了同一個Integer對象。因爲當數值在byte範圍內容,對於新特性,如果該數值已經存在,則不會再開闢新的空間。 |
Java基礎第十三天學習日記_String字符串
------- android培訓、java培訓、期待與您交流! ----------
------- android培訓、java培訓、期待與您交流! ---------- 詳細請查看:http://edu.csdn.net/heima/
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.