教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢(xún)/投訴熱線(xiàn):400-618-4000

Java String類(lèi)的操作匯總[超全]

更新時(shí)間:2020年01月08日14時(shí)54分 來(lái)源:傳智播客 瀏覽次數(shù):

傳智播客

在應(yīng)用程序中經(jīng)常會(huì)用到字符串,所謂字符串就是指一連串的字符,它是由許多單個(gè)字符連接而成的,如多個(gè)英文字母所組成的一個(gè)英文單詞。字符串中可以包含任意字符,這些字符必須包含在一對(duì)雙引號(hào)“”之內(nèi),例如“ab”。在Java中定義了String和StringBuffer兩個(gè)類(lèi)來(lái)封裝字符串,并提供了一系列操作字符串的方法,它們都位于java.lang包中,因此不需要導(dǎo)包就可以直接使用。下面我們?cè)敿?xì)介紹String類(lèi)。
 
String類(lèi)的初始化
 
在操作String類(lèi)之前,首先需要對(duì)String類(lèi)進(jìn)行初始化,在Java中可以通過(guò)以下兩種方式對(duì) String類(lèi)進(jìn)行初始化,具體如下。
 
1.  使用字符串常量直接初始化一個(gè)String對(duì)象,具體代碼如下:
 
String strl="abc";
 
由于String類(lèi)比較常用,所以提供了這種簡(jiǎn)化的語(yǔ)法,用于創(chuàng)建并初始化String對(duì)象,其中“abc”表示一個(gè)字符串常量。
 
2.  使用String的構(gòu)造方法初始化字符串對(duì)象,String類(lèi)的構(gòu)造方法下表所示。


方法聲明 功能描述
String() 創(chuàng)建一個(gè)內(nèi)容為空的字符串
String(char[] vaule) 根據(jù)指定的字符組創(chuàng)建對(duì)象
String(String value) 根據(jù)指定的字符串內(nèi)容創(chuàng)建對(duì)象


上面表中列出了String類(lèi)的三種構(gòu)造方法,通過(guò)調(diào)用不同參數(shù)的構(gòu)造方法便可完成String類(lèi)的初始化。接下來(lái)通過(guò)一個(gè)案例來(lái)演示。
 
public class string01 {
    public static void main(String[] args) throws Exception {
        //創(chuàng)建一個(gè)空對(duì)象、
        String str1=new String();
        //創(chuàng)建一個(gè)內(nèi)容為abcd的字符串
        String str2=new String("abcd");
        //創(chuàng)建一個(gè)內(nèi)容為字符數(shù)組的字符串
        char[] charArray=new char[]{'D','E','F'};
        String str3=new String(charArray);
        System.out.println("a"+str1+"b");
        System.out.println(str2);
        System.out.println(str3);
    }
}

 
運(yùn)行結(jié)果:

1578465658119_string類(lèi)的常用操作01.jpg
 

String類(lèi)的常見(jiàn)操作匯總
 
String類(lèi)在實(shí)際開(kāi)發(fā)中的應(yīng)用非常廣泛,因此靈活地使用String類(lèi)是非常中要的。下面我們介紹String類(lèi)常用類(lèi)的一些方法。
 
int indexOf(int ch)
功能:返回指定字符在此字符串中第一次出現(xiàn)處的索引
 
int lastIndexOf(int ch)
功能:返回指定字符在此字符串中最后一次出現(xiàn)處的索引
 
char charAt(int index)
功能:返回字符串中index位置上的字符,其中index的取值范圍是:0~(字符串長(zhǎng)度-1)
 
boolean endsWith(String suffix)
功能:判斷此字符串是否以指定的字符串結(jié)尾
 
int length()
功能:返回此字符串的長(zhǎng)度
 
boolean equals(Object anObject)
功能:將此字符串與指定的字符串比較
 
boolean isEmpty()
功能:當(dāng)且僅當(dāng)字符串長(zhǎng)度為0時(shí)返回true
 
boolean startsWith(String prefix)
功能:判斷此字符串是否以指定的字符串開(kāi)始
 
boolean contains(CharSequence cs)
功能:判斷此字符申中是否包含指定的字符序列
 
String toLowerCase()
功能:使用默認(rèn)語(yǔ)言環(huán)境的規(guī)則將String中的所有字符都轉(zhuǎn)換為小寫(xiě)
 
String toUpperCase()
功能:使用默認(rèn)語(yǔ)言環(huán)境的規(guī)則將String中的所有字符都轉(zhuǎn)換為大寫(xiě)
 
String valueOf(int i)
功能:返回int參數(shù)的字符表現(xiàn)形式
 
char[] toCharArray()
功能:將此字符串轉(zhuǎn)化為一個(gè)字符數(shù)組
 
String repalce(CharSequence oldstr,CharSequence newstr)
功能:返回一個(gè)新的字符串,它是通過(guò)用newstr替換此字符串中出現(xiàn)的所有oldstr得到的
 
String[] split(String regex)
功能:根據(jù)參數(shù)regex將原來(lái)的字符串分割為若干個(gè)子字符串
 
String substring(int beginIndex)
功能:返回一個(gè)新字符串,它包含字符串中索引beginIndex后的所有字符
 
String substring(int beginIndex,int endIndex)
功能:返回一個(gè)新字符串,它包含此字符串中從索引beginIndex到索引endIndex之間的所有字符。
 
String trim()
功能:返回一個(gè)新字符串,它去除了原字符串首尾的空格

 
上面我們列出了String類(lèi)的常見(jiàn)方法,其中有些方法無(wú)法通過(guò)描述解釋清楚,下面我們就通過(guò)實(shí)例來(lái)具體學(xué)習(xí)。
 

1、字符串的基本操作
在程序中,需要對(duì)字符串進(jìn)行一些基本操作,如獲得字符串長(zhǎng)度、獲得指定位置的字符等。 String類(lèi)針對(duì)每一個(gè)操作都提供了對(duì)應(yīng)的方法,接下來(lái)通過(guò)一個(gè)案例來(lái)學(xué)習(xí)下這些方法的使用。
 
public class string02 {
    public static void main(String[] args) {
        String s="abcdedcba";       //聲明字符串
        System.out.print("字符串的長(zhǎng)度為:"+s.length());        //獲取字符串的長(zhǎng)度,即字符個(gè)數(shù)
        System.out.println("字符串中第一個(gè)字符:"+s.charAt(0));
        System.out.println("字符c第一次出現(xiàn)的位置:"+s.indexOf('c'));
        System.out.println("字符c最后一次出現(xiàn)的位置:"+s.lastIndexOf('c'));
    }
}

 
運(yùn)行結(jié)果如下:
1578465671196_string類(lèi)的常用操作02.jpg
 

2、字符串的轉(zhuǎn)換操作

程序開(kāi)發(fā)中,經(jīng)常需要對(duì)字符串進(jìn)行轉(zhuǎn)換操作,例如將字符串轉(zhuǎn)換成數(shù)組的形式,將字符串中的字符進(jìn)行大小寫(xiě)轉(zhuǎn)換等。接下來(lái)通過(guò)一個(gè)案例來(lái)演示字符串的轉(zhuǎn)換操作。
 
public class string03 {
    public static void main(String[] args) {
         String str="abcd";
         System.out.print("將字符串轉(zhuǎn)為字符串?dāng)?shù)組的結(jié)果");
         char[] charArray=str.toCharArray();  //字符串轉(zhuǎn)為字符組
         for(int i=0;i              if (i !=charArray.length-1){
             //如果不是數(shù)組的最后一個(gè)元素,在元素后面加逗號(hào)
             System.out.print(charArray[i]+",");
         }else{
             //數(shù)組的最后一個(gè)元素后面不加逗號(hào)
             System.out.println(charArray[i]);
         }
         }
         System.out.println("將int值轉(zhuǎn)為String類(lèi)型之后的結(jié)果"+String.valueOf(12));
         System.out.println("將字符轉(zhuǎn)換成大寫(xiě)之后的結(jié)果"+str.toUpperCase());
    }
 }



運(yùn)行結(jié)果如下:


1578465687521_string類(lèi)的常用操作03.jpg


在上面例子中,使用String類(lèi)的toCharArray()方法將一個(gè)字符串轉(zhuǎn)為一個(gè)字符數(shù)組,靜態(tài)方法 valueOf()將一個(gè)int類(lèi)型的整數(shù)轉(zhuǎn)為字符串,toUpperCase()方法將字符串中的字符都轉(zhuǎn)為大寫(xiě)。其中valueOf()方法有很多重載的形式,float、double、char等其他基本類(lèi)型的數(shù)據(jù)都可以通過(guò)該方法轉(zhuǎn)為String字符串類(lèi)型。
 


3、字符串的替換和去除空格的方法

程序開(kāi)發(fā)中,用戶(hù)輸入數(shù)據(jù)時(shí)經(jīng)常會(huì)有一些錯(cuò)誤和空格,這時(shí)可以使用String類(lèi)的replace()和trim()方法,進(jìn)行字符串的替換和去除空格操作,接下來(lái)通過(guò)一個(gè)案例來(lái)介紹。


public class string04 {

    public static void main(String[] args) {
        String s="itcast";
        //字符串替換操作
        System.out.println("將it替換成cn.it的結(jié)果:"+s.replace("it","cn.it"));
        //去除字符串空格操作
        String s1=" i t c a s t ";
        System.out.println("去除字符串中兩端的空格后的結(jié)果:"+s1.trim());
        System.out.println("去除字符串所空格的結(jié)果:"+s1.replace(" ",""));
    }



運(yùn)行結(jié)果為:

 
1578465698683_string類(lèi)的常用操作04.jpg

上面案例中調(diào)用了String類(lèi)的兩個(gè)方法,其中replace()方法用于將字符串中所有與指定字符串匹配的子串替換成另一個(gè)字符串,trim()方法用于去除字符串中的空格。需要注意的是,該方法只能去除兩端的空格,不能去除中間的空格。若想去除字符串中間的空格,則可以調(diào)用String類(lèi)的 replace()方法。
 

4、字符串的判斷操作

操作字符串時(shí),經(jīng)常需要對(duì)字符串進(jìn)行一些判斷,如判斷字符串是否以指定的字符串開(kāi)始、結(jié)束,是否包含指定的字符串,字符串是否為空等。在String類(lèi)中針對(duì)字符串的判斷操作提供了很多方法,接下來(lái)通過(guò)一個(gè)案例來(lái)學(xué)習(xí)。

public class string05_1 {
    public static void main(String[] args) {
        String s1="String";
        String s2="Str";
        System.out.println("判斷是否以字符串str開(kāi)頭:"+s1.startsWith("Str"));
        System.out.println("判斷是否以字符串ng結(jié)尾:"+s1.endsWith("ng"));
        System.out.println("判斷是否以包含字符串tri:"+s1.contains("tri"));
        System.out.println("判斷字符串是否為空:"+s1.isEmpty());
        System.out.println("判斷兩個(gè)字符串是否相等:"+s1.equals("s2"));
    }
}

 
運(yùn)行結(jié)果如下:

1578465710042_string類(lèi)的常用操作05.jpg

上面案例中涉及到的方法都是用于判斷字符串的,并且返回值均為boolean類(lèi)型。其中,equals()方法比較重要,該方法將父類(lèi)Object中equals()方法進(jìn)行了重寫(xiě)。在程序中可以通過(guò)和equals()兩種方式對(duì)字符串進(jìn)行比較,但這兩種方式有明顯的區(qū)別。equals()方法用于比較兩個(gè)字符串中的字符是否相等,==方法用于比較兩個(gè)字符串對(duì)象的地址是否相同。對(duì)于兩個(gè)字符串對(duì)象,當(dāng)它們的字符內(nèi)容完全相同時(shí),使用equals判斷結(jié)果會(huì)為true,但使用==判斷時(shí),結(jié)果一定為false。為了便于理解,下面給出示例代碼:

public class string05_2 {
    public static void main(String[] args) {
        String str1=new String("abc");
        String str2=new String("abc");
        System.out.println(str1==str2);     //結(jié)果為false,因?yàn)閟tr1和str2是兩個(gè)對(duì)象
        System.out.println(str1.equals(str2)); //結(jié)果為true,應(yīng)為str1和str2字符內(nèi)容相同
    }
}


運(yùn)行結(jié)果為:
1578465226130_string類(lèi)的常用操作06.jpg


5、字符串的截取和分隔
在String類(lèi)中針對(duì)字符串的截取和分割操作提供了兩個(gè)方法,其中,substring()方法用于截取字符串的一部分,split()方法可以將字符串按照某個(gè)字符進(jìn)行分割。接下來(lái)通過(guò)一個(gè)案例來(lái)學(xué)習(xí)。

public class string06 {
    public static void main(String[] args) {
        String str="羽毛球-籃球-乒乓球";
        //下面是字符串截取操作
        System.out.println("從第5個(gè)字符截取到末尾的結(jié)果:"+str.substring(4));
        System.out.println("從第5個(gè)字符截取到第6個(gè)字符的結(jié)果:"+str.substring(4,6));
        //下面是字符分隔操作
        System.out.print("分隔后的字符串?dāng)?shù)組中的元素一次為:");
        String[] strArray=str.split("-");       //將字符串轉(zhuǎn)換為字符串?dāng)?shù)組
        for (int i=0;i             if (i !=strArray.length-1) {
                //如果不是數(shù)組最后一個(gè)元素,在元后面加逗號(hào)
                System.out.print(strArray[i]+",");
            } else {
                //數(shù)組的最后一個(gè)元素后面不加逗號(hào)
                System.out.println(strArray[i]);
            }
        }
    }
}


運(yùn)行結(jié)果為:

1578465237737_string類(lèi)的常用操作07.jpg
 

上面案例中。調(diào)用了String類(lèi)中重載的兩個(gè)substring()方法。在第5行代碼調(diào)用substring()方法時(shí),傳入?yún)?shù)4,即截取字符串中第5個(gè)字符以及之后的所有字符,因?yàn)樽址械淖址?,索引是?開(kāi)始的。第6行代碼調(diào)用substring()方法時(shí)傳入兩個(gè)參數(shù)4和6,即截取第5個(gè)和第6個(gè)字符,因?yàn)樽址诮厝r(shí),只包括開(kāi)始索引,不包括結(jié)束索引。上面案例中的第9~18行演示了split()方法的用法,該方法會(huì)根據(jù)指定的符號(hào)將字符串分割成三部分,并存放到一個(gè)String類(lèi)型的數(shù)組當(dāng)中。
 
String宇符串在獲取某個(gè)字符時(shí),會(huì)用到字符的索引,當(dāng)訪(fǎng)問(wèn)字符串中的字符時(shí),如果字符的索引不存在,則會(huì)發(fā)生StringIndexOutOfBoundsException(字符串角標(biāo)越界異常),接下來(lái)通過(guò)一個(gè)案例來(lái)演示。

public class string07 {
    public static void main(String[] args) {
        String s="abcdedsba";
        System.out.println(s.charAt(9));
    }
}


運(yùn)行結(jié)果為:

1578465251438_string類(lèi)的常用操作08.jpg

通過(guò)運(yùn)行結(jié)果可以看出,訪(fǎng)問(wèn)字符串中的字符時(shí),不能超出字符的索引范圍,否則會(huì)出現(xiàn)異常,這與數(shù)組中的角標(biāo)越界異常非常相似。

猜你喜歡:
java培訓(xùn)課程
java基礎(chǔ)教程下載 Java面向?qū)ο笫鞘裁匆馑?
JDK下載安裝與環(huán)境變量配置圖文教程【超詳細(xì)】
java遞歸是什么意思,怎么用
Java中switch條件語(yǔ)句的用法
正則化是什么意思?正則化技術(shù)解析
JDBC是什么?jdbc常用API有哪些?
什么是Java,Java有幾個(gè)技術(shù)平臺(tái)?
Java語(yǔ)言有什么特點(diǎn)?


0 分享到:
和我們?cè)诰€(xiàn)交談!