String類的常用方法

一. Java的api-docs文檔組成

1. 在docs中,Java中任何一個(gè)類的文檔由如下幾部分組成:

? ? ★類的相關(guān)定義,包括類的名稱,有哪些父類,有哪些接口;

? ? ★類的相關(guān)簡介,包括一些基本的使用說明;

? ? ★成員(Field)摘要:屬性就是一種成員,會列出所有出現(xiàn)的成員信息項(xiàng);

? ? ★構(gòu)造方法(Constructor)說明:列出該類中所有構(gòu)造方法的信息;

? ? ★方法信息(Method)說明:所有類中定義好的可以使用的方法;

? ? ★成員、構(gòu)造、方法的詳細(xì)信息。

二. 字符串與字符數(shù)組

1. 字符串就是一個(gè)字符數(shù)組,所以在String類里面支持有字符數(shù)組轉(zhuǎn)換為字符串以及字符串變?yōu)樽址奶幚聿僮鞣椒?。這些處理操作方法如下:

ToDo

char ch = 'a' ;

//ch = (char) (ch - 32) ;

ch -= 32 ; ? // 這樣簡寫可以避免像上面一樣寫強(qiáng)制轉(zhuǎn)換并且避免出現(xiàn)異常

三. 字節(jié)與字符串

1. 字節(jié)更多的情況是用于數(shù)據(jù)傳輸以及編碼轉(zhuǎn)換處理之中,在String類里面提供有對字節(jié)操作的支持。

2. 字節(jié)并不適合處理中文,而只有字符適合于處理中文,并且按照程序的概念來講,一個(gè)字符等于2個(gè)字節(jié),字節(jié)只適合于處理二進(jìn)制數(shù)據(jù)。

四. 字符串比較

1. 在之前使用過了一個(gè)“equals()”方法,該方法本身是可以進(jìn)行區(qū)分大小寫的相等判斷,而除了 這個(gè)方法之外,在String類里面還提供有如下的幾個(gè)比較操作。

2. 在String類中compareTo()方法是一個(gè)最為重要的操作方法,該方法返回int型的數(shù)據(jù),該數(shù)據(jù)會根據(jù)大小關(guān)系返回有三類的內(nèi)容:

●相等:返回0;

●小于:返回的內(nèi)容小于0;

●大于:返回的內(nèi)容大于0;

compareTo()是唯一一個(gè)可以區(qū)分大小關(guān)系的方法。

五. 字符串查找

1. 從一個(gè)完整的字符串之中可以判斷指定的內(nèi)容是否存在,對于字符串的查找方法有許多的定義。

2. 從JDK1.5之后提供了contains()方法來進(jìn)行字符串的查找操作,在1.5版本之前采用indexOf()方法進(jìn)行位置查找,判斷返回值是否為-1。但是現(xiàn)在基本上都建議使用contains()方法完成。使用indexOf()需要注意的是,如果所查找的內(nèi)容重復(fù),它只能夠返回查找的第一個(gè)位置。

3. 在進(jìn)行查找的時(shí)候往往會判斷開頭或結(jié)尾。(這個(gè)很有用!?。。┖芏鄷r(shí)候往往一些參數(shù)或利用一些標(biāo)記做一些特殊的處理,此時(shí)就需要使用到startWith()或endWith()。

六. 字符串替換

1. 使用一個(gè)指定的新的字符串替換已有的字符串?dāng)?shù)據(jù),字符串的替換可以使用的方法如下:

2. 字符串的替換操作與正則有關(guān),后期還會對對其進(jìn)行分析。

七. 字符串拆分

1. 在整個(gè)的字符串之中,可以使用一個(gè)特定的字符串來實(shí)現(xiàn)字符串的分割處理,也就是說可以將一個(gè)完整的字符串,按照指定的分割符劃分為若干個(gè)子字符串。

2. 如果發(fā)現(xiàn)有些內(nèi)容無法拆分開,就需要使用“\\”轉(zhuǎn)義。

范例:

String str = "192.168.1.1" ;

String [] = str.split("\\.") ;

3. 在以后的實(shí)際開發(fā)之中,經(jīng)常會出現(xiàn)這樣的拆分模式: ?姓名:年齡|姓名:年齡|...。

八. 字符串截取

1. 從一個(gè)完整的字符串之中截取出部分內(nèi)容,那么對于截取的方法有如下幾個(gè):

●public String substring(int beginIndex)

●public String substring(int beginIndex, int endIndex)

九. 字符串其他操作方法

1. String類中也定義有一些比較小的操作方法。如:

●public String strim() ? ?// 去掉字符串中的左右空格,保留中間空格

●public String toUpperCase() ? // 字符串轉(zhuǎn)大寫

●publci String toLowerCase() ? ?// 字符串轉(zhuǎn)小寫

●public String intern() ? // 字符串入對象池

●public String concat(String str) ? // 字符串連接,等同于“+”

●public int length() ?// 取得字符串長度

? ? 在數(shù)組上有一個(gè)格式“數(shù)組名稱.length屬性”,但是在String類中的length()是一個(gè)方法,方法必須通過對象才可以調(diào)用,而且方法后面一定有“()”存在。

●public boolean isEmpty() ? // 判斷是否為空字符串(但不是null,而是長度為0)

2. 在String類里面唯一的遺憾是沒有提供首字母大寫的方法,所以我們?nèi)绻胍褂?,那么就必須自己來?shí)現(xiàn)。提供的代碼如下:

public static String initCap(String str) {

? ? // "".equals(str)和str.isEmpty(),在沒有str==null的先行判斷下,str.isEmpty()容易產(chǎn)

? ? // 生異常

? ? if (str==null || "".equals(str)) {

? ? ? ? return str ; ?// 進(jìn)來什么就返回什么

? ? }

? ? if (str.length() > 1) {

? ? ? ? return str.substring(0, 1).toUpperCase() + str.substring(1) ;

? ? }

? ? return str.toUpperCase() ;

}

可以將上述initCap替換為:

public static String initCapFirst(String str) {

// "".equals(str)和str.isEmpty(),在沒有str==null的先行判斷下,str.isEmpty()容易產(chǎn)

// 生異常

if (str==null || "".equals(str)) {

return str ;? // 進(jìn)來什么就返回什么

}

return str.substring(0, 1).toUpperCase() + str.substring(1) ;

}

這樣子看起來稍微麻煩一些,但是使用效果和initCap()一樣。假設(shè)str = “a”,str.substring(1)可以這樣寫的原因是:

Examples:

"unhappy".substring(2) returns "happy"

"Harbison".substring(3) returns "bison"

"emptiness".substring(9) returns "" (an empty string)? ? // "emptiness"長度為9,返回值為empty(空字符串)。

Throws:

IndexOutOfBoundsException - if beginIndex is negative or larger than the length of this String object.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容