最近氣的不行拟枚,String的API掌握的不牢,刷起leetcode各種不記得吼渡,今天痛定思痛,決定好好惡補(bǔ)一下容为。
關(guān)于String類的基本操作,可分為以下幾類:
1寺酪、基本操作方法
2坎背、字符串比較
3、字符串與其他數(shù)據(jù)類型之間的轉(zhuǎn)換
4寄雀、字符與字符串的查找
5得滤、字符串的截取與拆分
6、字符串的替換與修改
一盒犹、String基本操作方法
1懂更、 獲取字符串長度方法length()
格式:int length = str.length();
2、獲取字符串中的第i個(gè)字符方法charAt(i)
格式:char ch = str.charAt(i); //i為字符串的索引號(hào)急膀,可得到字符串任意位置處的字符沮协,保存到字符變量中
3、獲取指定位置的字符getChars(4個(gè)參數(shù))
格式:char array[] = new char[80]; //先要?jiǎng)?chuàng)建以一個(gè)容量足夠大的char型數(shù)組卓嫂,數(shù)組名為array
str.getChars(indexBegin,indexEnd,array,arrayBegin);
解釋一下括號(hào)中四個(gè)參數(shù)的指向意義:
1慷暂、indexBegin:需要復(fù)制的字符串的開始索引
2、 indexEnd: 需要復(fù)制的字符串的結(jié)束索引晨雳,indexEnd-1
3行瑞、array: 前面定義的char型數(shù)組的數(shù)組名
4、arrayBegin:數(shù)組array開始存儲(chǔ)的位置索引號(hào)
這樣我們就可以將字符串中想要的范圍內(nèi)的字符都復(fù)制到字符數(shù)組中悍募,將字符數(shù)組打印輸出即可蘑辑。
與getChars()類似的方法有一個(gè)getBytes(),兩者使用上基本相同,只是getBytes()方法創(chuàng)建的是byte類型的數(shù)組坠宴,而byte編碼是默認(rèn)字符集編碼洋魂,它是用編碼表示的字符。
二、字符串比較
1副砍、首先看一下第一種比較大小這類需求中的方法:
(1)不忽略字符串大小寫情況下字符串的大小比較方法compareTo(another str)
格式:int result = str1.compareTo(str2);
輸出三種比較結(jié)果:若該字符串的Unicode值<參數(shù)字符串的Unicode值衔肢,結(jié)果返回一負(fù)整數(shù);若若該字符串的Unicode值=參數(shù)字符串的Unicode值豁翎,結(jié)果返回0角骤;若該字符串的Unicode值>參數(shù)字符串的Unicode值,結(jié)果返回一正整數(shù)心剥。
(2) 忽略字符串大小寫情況下字符串的大小比較方法compareTOIgnoreCase(another str)
格式:int result = str1.compareToIgnoreCase(str2);
在忽略字符串大小寫情況下邦尊,返回三種比較結(jié)果:輸出三種比較結(jié)果:若該字符串的Unicode值<參數(shù)字符串的Unicode值,結(jié)果返回一負(fù)整數(shù)优烧;若若該字符串的Unicode值=參數(shù)字符串的Unicode值蝉揍,結(jié)果返回0;若該字符串的Unicode值>參數(shù)字符串的Unicode值畦娄,結(jié)果返回一正整數(shù)又沾。
2、然后看一下第二種判別兩種字符串是否相等(相等情況下必須保證二者長度相等)需求中的方法:
(1)不忽略字符串大小寫情況下判別字符串相等的方法eaquals(another str)
格式:boolean result = str1.equals(str2);
當(dāng)且僅當(dāng)str1和str2的長度相等熙卡,且對應(yīng)位置字符的Unicode編碼完全相等杖刷,返回true,否則返回false
(2) 忽略字符串大小寫情況下判別字符串相等的方法equalsIgnoreCase(another str)
格式:boolean result = str1.equals(str2);
三、字符串與其他數(shù)據(jù)類型的轉(zhuǎn)換
四驳癌、字符串查找
(1)查找字符出現(xiàn)的位置
1滑燃、indexOf()方法
格式:1、str.indexOf(ch);
2颓鲜、str.indexOf(ch,fromIndex); //包含fromIndex位置
格式1返回指定字符在字符串中第一次出現(xiàn)位置的索引
格式2返回指定索引位置之后第一次出現(xiàn)該字符的索引號(hào)
2不瓶、lastIndexOf()方法
格式:1、str.lastIndexOf(ch);
2灾杰、str.lastIndexOf(ch,fromIndex);
格式1返回指定字符在字符串中最后一次出現(xiàn)位置的索引
格式2返回指定索引位置之前最后一次出現(xiàn)該字符的索引號(hào)
(2) 查找字符串出現(xiàn)的位置
1、indexOf()方法
格式:1熙参、str.indexOf(str);
2艳吠、str.indexOf(str,fromIndex);
格式1返回指定子字符串在字符串中第一次出現(xiàn)位置的索引
格式2返回指定索引位置之前第一次出現(xiàn)該子字符串的索引號(hào)
2、lastIndexOf()方法
格式:1孽椰、str.lastIndexOf(str);
2昭娩、str.lastIndexOf(str,fromIndex);
格式1返回指定子字符串在字符串中最后一次出現(xiàn)位置的索引
格式2返回指定索引位置之前最后一次出現(xiàn)該子字符串的索引號(hào)
五、截取與拆分
(1) 截取方法
1黍匾、substring()方法
格式1:String result = str.substring(index)栏渺;
格式2:String result = str.substring(beginIndex,EndIndex);//實(shí)際索引號(hào)[beginIndex,EndIndex-1]
結(jié)果:截取出范圍內(nèi)的字符串
(2)拆分方法
1锐涯、split()方法
格式1 :String strArray[] = str.split(正則表達(dá)式);// 拆分的結(jié)果保存到字符串?dāng)?shù)組中
格式2:String strArray[] = str.split(正則表達(dá)式磕诊,limit);
六、替換或修改
(1)concat()方法合并字符串
格式:String result = str1.concat(str2); //將str1和str2合并
(2) toLowerCase()方法 將字符全部轉(zhuǎn)化為小寫
格式: String result = str.toLowerCase();
(3) toUpperCase()方法 將字符全部轉(zhuǎn)化為大寫
格式:String result = str.toUpperCase();
(4)replaceAll()、replaceFirst()方法:需要匹配正則表達(dá)式