1.字串最大的特點:一旦初始化就不可以改變。(不可改變的字串內容而不是指向字串的引用)
2.string s=「abc」;其中s是乙個類型別變數,「abc」是乙個物件。
3.string s1="abc";和string s2=new string(「abc」);
s1==s2;和s1.equals(s2);,==比較的是他們在記憶體中的存放位址,所以,除非是同乙個new出來的物件,他們的比較後的結果為true,否則比較後結果為false(比如還有乙個string s3=「abc」;那麼s1==s3;為true)。因為string中複寫了object類中的equals,所以這個equals比較的就不是基於他們在記憶體中的存放位置的位址值,而是字串了,因為s1和s2字串內容「abc」,所以s1==s2;結果為false,s1.equals(s2);結果為true。
s1和s2的區別在於s1在記憶體中存在乙個物件,s2在記憶體中存在2個物件,new乙個和「abc」。
4.常見的方法:
1.獲取。
1.1 字串長度:int length();
1.2 獲取某個位置上的某個字元:char charat(int index);
1.3 根據字元獲取該字元在字串中的位置:int indexof(int ch);返回的是ch在字串中第一次出現的位置。int indexof(int ch,int fromindex);返回的是從fromindex指定位置開始,獲取cd在字串**現的位置。int indexof(string str);返回的是str位置。int lastindexof(int ch)從尾部開始查詢。
2.判斷。
2.1 字串中是否包含某乙個字串。boolean contains(charsequence s);charsequences是乙個字串序列介面。indexof(str)也可以用來判斷,沒有則返回-1,還能返回位置。
2.2 字串是否有內容。bollean isempty();
2.3 字串是否以指定內容開頭。boolean startwith(string str);
2.4 字串是否以指定內容結尾。boolean endwith(string str);
2.5 判斷字串是否相同。bollean equals(str);bollean equalsignorecase(str);判斷內容是否相同並忽略大小寫。
3.轉換。
3.1 將字元陣列轉換成字串。
建構函式:string(char value)
string(char value,int offset,int count):將字元陣列的一部分轉換為字串。offset位置開始count個字元轉換為字串。
靜態方法:static string copyvalueof(char data);
static string copyvalueof(char data,int offset,int count);
3.2 將字串轉成字元陣列。char tochararray();
3.3 將位元組陣列轉成字串。
建構函式:string(byte value)
string(byte value,int offset,int count):
3.4 將字串轉成位元組陣列。byte getbytes();
3.5 將基本資料型別轉換成字串。比如:3+「」;和string.valueof(3);是一樣的。
static string valueof(int i);
static string valueof(boolean b);
static string valueof(int i);
注意:字串和位元組陣列在轉換過程中是可以指定編碼表的。
4.替換
string replace(oldchar,newchar);全替換,如果要替換的字元不存在,返回的還是原字串。
5.切割
string split(regex);按照regex規則切。
6.子串。獲取字串中的一部分。
string substring(begin); 從指定位置到結尾
string substring(begin,end);從指定位置到end前一位,包含頭不包含尾。substring(0,字串物件.length());不需要-1.
7.轉換,去除空格,比較。
7.1 將字串轉換成大寫或者小寫
string touppercase();
string tolowercase();
7.2 將字串兩端的多個空格去除
string trim();怎麼去除所有空格,可以用replace(「 」,「」);或者replaceall(" +","");
7.3 對兩個字串進行自然順序的比較
int compareto(string);從兩個字串的第乙個字元開始比較,相減
練習一:去除字串兩端空格
練習二:反轉字串
練習三:獲取乙個字串在另乙個字串**現的次數
練習四:獲取兩個字串中最大相同子串
學習第十天
一 介面 jdk1.8及之後新增了2中可以定義存在方法體的方法 預設方法 default關鍵字修飾的方法 使用 通過實現類物件使用 靜態方法 使用 通過介面名去呼叫 二 單例模式 保證類只能存在乙個例項 餓漢式 先建立物件,然後需要的人要這個物件,保證永遠使用的都是這個建立好的物件 執行緒安全的,效...
python學習第十天
class student count 0 def init self,name,age,address self.name name self.age age self.address address student.count 1 k print k w open a.txt w encodin...
python學習第十天
這兩個習題主要是複習各種符號,並且強調編寫長 時要寫一段執行一段修改一段 主要是學習對列表的進一步操作 ten things stuff ten things.split 定義乙個字串變數 用split 函式以空格為分隔標誌分隔字串使之成為列表 more stuff day night song f...