- 程序員面試筆試通關(guān)寶典
- 聚慕課教育研發(fā)中心
- 2690字
- 2021-12-10 16:52:10
3.1 字符串
本節(jié)主要講解Java中的字符串的創(chuàng)建、基本操作、類型轉(zhuǎn)換以及字符串在實(shí)際操作中的應(yīng)用等問題。應(yīng)聘者只有能夠理解問題的要求,掌握這些基礎(chǔ)知識并且能夠做到舉一反三,才能在面試及筆試中應(yīng)對自如。
3.1.1 String類
String類的本質(zhì)就是字符數(shù)組,String類是Java中的文本數(shù)據(jù)類型。字符串是由字母、數(shù)字、漢字以及下畫線組成的一串字符。字符串常量是用雙引號表示的內(nèi)容。String類是Java中比較特殊的一類,但它不是Java的基本數(shù)據(jù)類型之一,卻可以像其他基本數(shù)據(jù)類型一樣使用,聲明與初始化等操作都是相同的,是程序經(jīng)常處理的對象,因此掌握好String的用法對我們后面的學(xué)習(xí)會有所幫助。
3.1.2 字符串的創(chuàng)建
String類的創(chuàng)建有兩種方式:一種是直接使用雙引號賦值;另一種是使用new關(guān)鍵字創(chuàng)建對象。
1.直接創(chuàng)建
直接使用雙引號為字符串常量賦值,語法格式如下:
String 字符串名 ="字符串";
字符串名:一個合法的標(biāo)識符。
字符串:由字符組成。
例如:
String s = "hello java";
2.使用new關(guān)鍵字創(chuàng)建
在Java中有多種重載的構(gòu)造方法,通常使用new關(guān)鍵字調(diào)用String類的構(gòu)造方法來創(chuàng)建字符串。
1)public String()方法
這種方法初始化一個新創(chuàng)建的String類對象,使它表示一個空字符序列。由于String是不可改變的,因此這種創(chuàng)建方法我們幾乎不使用。
使用String()方法創(chuàng)建空字符串的代碼如下:
String s = new String();
☆注意☆ 使用String類創(chuàng)建的空字符串,它的值不是null,而是“ ”,它是實(shí)例化的字符串對象,不包括任何字符。
2)public String(String original)方法
該方法初始化一個新創(chuàng)建的String類對象,使其表示一個與參數(shù)相同的字符序列,即創(chuàng)建該參數(shù)字符串的副本。由于String類是不可變的,因此這種構(gòu)建方法一般不常用,除非需要顯示original的副本。
使用一個帶String類型參數(shù)的構(gòu)造函數(shù)創(chuàng)建字符串,具體代碼如下:
String s = new String("hello");
3)public String(char[] value)方法
該方法分配一個新的String類對象,使其表示字符數(shù)組參數(shù)中當(dāng)前包括的字符序列。該字符數(shù)組的內(nèi)容已經(jīng)被復(fù)制,后續(xù)對字符數(shù)組的修改不會影響新創(chuàng)建的字符串。字符數(shù)組value的值是字符串的初始值。
使用一個帶char類型數(shù)組參數(shù)的構(gòu)造函數(shù)創(chuàng)建字符串,具體代碼如下:
char a[] = {'h','e','l','l','o'}; String s = new String(a);
4)public String(char[],value,int,offset,count)方法
該方法是分配一個新的String類對象,它包含字符數(shù)組參數(shù)的一個子數(shù)組的字符。offset參數(shù)是子數(shù)組第一個字符的索引,count參數(shù)指定子數(shù)組的長度。該子數(shù)組的內(nèi)容已經(jīng)被復(fù)制,后續(xù)對字符數(shù)組的修改不會影響新創(chuàng)建的字符串。
使用帶有3個參數(shù)的構(gòu)造函數(shù)創(chuàng)建字符數(shù)組,具體代碼如下:
char[] a= {'s','t','u','d','e','n','t'}; String s = new String(a, 2, 4); a [3]='u',
3.1.3 字符串的連接
連接字符串是字符串操作中最簡單的一種。通過連接字符串,可以將兩個或多個字符串、字符、整數(shù)和浮點(diǎn)數(shù)等類型的數(shù)據(jù)連成一個更大的字符串。字符串的連接有兩種方法,一種是使用“+”,另一種是使用String提供的concat()方法。
1.使用“+”連接字符串
“+”運(yùn)算符是最簡單、快捷,也是使用最多的字符串連接方式。在使用“+”運(yùn)算符連接字符串和int型(或double型)數(shù)據(jù)時,“+”將int(或double)型數(shù)據(jù)自動轉(zhuǎn)換成String類型。
下面的實(shí)例使用“+”運(yùn)算符連接了3個數(shù)組和1個字符串。

上述代碼首先創(chuàng)建了3個包含5個元素的數(shù)組,然后循環(huán)遍歷數(shù)組,遍歷的次數(shù)為5。在循環(huán)體內(nèi)輸出學(xué)號、姓名和課程,并使用“+”運(yùn)算符連接班級,最終形成一個字符串。程序運(yùn)行后輸出結(jié)果如下:
本次考試學(xué)生信息如下: 學(xué)號:51|姓名:張寧|課程:數(shù)學(xué)|班級:九年級 學(xué)號:11|姓名:劉麗|課程:語文|班級:九年級 學(xué)號:24|姓名:李旺|課程:數(shù)學(xué)|班級:九年級 學(xué)號:12|姓名:孟霞|課程:英語|班級:九年級 學(xué)號:34|姓名:賀一|課程:英語|班級:九年級
☆注意☆ 當(dāng)定義的字符串值的長度過長時,可以分多行來寫,這樣比較容易閱讀。
2.使用concat()方法
在Java中,String類的concat()方法實(shí)現(xiàn)了將一個字符串連接到另一個字符串后面的方法。concat()方法語法格式如下:
字符串1 concat (字符串2);
執(zhí)行結(jié)果是字符串2被連接到字符串1的后面,形成新的字符串。
concat()方法一次只能連接兩個字符串,如果需要連接多個字符串,需要多次調(diào)用concat()方法。
下面創(chuàng)建一個實(shí)例代碼來演示如何使用concat()方法連接多個字符串。
public static void main (String [] args) { String info="python"; info=info.concat("java、"); info=info.concat("c、"); info=info.concat("html"); System.out.println(info); String cn="中國"; System.out.println(cn.concat("河南").concat("鄭州").concat("聚慕課")); }
執(zhí)行該段代碼,輸出的結(jié)果如下:
python、java、c、html 中國河南鄭州聚慕課
3.1.4 字符串的基本操作
在程序中我們經(jīng)常對字符串進(jìn)行一些基本的操作,接下來將從以下幾個方面介紹字符串的基本操作。
1.String基本操作方法
1)獲取字符串長度方法length()
int length=str.length();
2)獲取字符串中的第i個字符方法charAt(i)
char ch = str.charAt(i); //i為字符串的索引號,可得到字符串任意位置處的字符,保存到字符變量中
3)獲取指定位置的字符方法getChars(4個參數(shù))
char array[] = new char[80]; //先要創(chuàng)建一個容量足夠大的char型數(shù)組,數(shù)組名為array str.getChars(indexBegin,indexEnd,array,arrayBegin);
2.字符串比較
字符串比較也是常見的操作,包括比較大小、比較相等、比較前綴和后綴等。
1)比較大小
compare to (String) compare to IgnoreCase(String) compare to (object String)
該示例通過使用上面的函數(shù)比較兩個字符串,并返回一個int類型的數(shù)據(jù)。若字符串等于參數(shù)字符串則返回值為0;若字符串小于參數(shù)字符串則返回值小于0;若字符串大于參數(shù)字符串則返回值大于0。
2)比較相等
String a=new String("abc"); String b=new String("abc"); a.equals(b);
如果兩個字符串相等則返回的結(jié)果為true,否則返回的結(jié)果為false。
3)比較前綴和后綴
startsWith()方法測試字符串是否以指定的前綴開始,endsWith()方法測試字符串是否以指定的后綴結(jié)束。具體代碼如下:
public boolean startsWith (String prefix) public boolean endsWith (String suffix)
在上述代碼中,boolean為返回值類型;prefix為指定的前綴;suffix為指定的后綴。
3.字符串的查找
有時候需要在一段很長的字符串中查找其中一部分字符串或者某個字符,String類恰恰提供了相應(yīng)的查找方法。字符串查找分為兩類:查找字符串和查找單個字符。查找又可分為查找對象在字符串中第一次出現(xiàn)的位置和最后一次出現(xiàn)的位置。
1)查找字符出現(xiàn)的位置
(1)indexOf()方法
str.indexOf(ch); str.indexOf(ch,fromIndex); //包含fromIndex位置
返回指定字符在字符串中第一次出現(xiàn)位置的索引;返回指定索引位置之前第一次出現(xiàn)該字符的索引號。
(2)lastIndexOf()方法
str.lastIndexOf(ch); str.lastIndexOf(ch,fromIndex);
返回指定字符在字符串中最后一次出現(xiàn)位置的索引;返回指定索引位置之前最后一次出現(xiàn)該字符的索引號。
2)查找字符串出現(xiàn)的位置
(1)indexOf()方法
str.indexOf(str); str.indexOf(str,fromIndex);
返回指定子字符串在字符串中第一次出現(xiàn)位置的索引;返回指定索引位置之前第一次出現(xiàn)該子字符串的索引號。
(2)lastIndexOf()方法
str.lastIndexOf(str); str.lastIndexOf(str,fromIndex);
返回指定子字符串在字符串中最后一次出現(xiàn)位置的索引;返回指定索引位置之前最后一次出現(xiàn)該子字符串的索引號。
3.1.5 字符串的類型轉(zhuǎn)換
有時候需要在字符串與其他數(shù)據(jù)類型之間轉(zhuǎn)換,例如將字符串類型數(shù)據(jù)變?yōu)檎蛿?shù)據(jù),或者反過來將整型數(shù)據(jù)變?yōu)樽址愋蛿?shù)據(jù),例如“20”是字符串類型數(shù)據(jù),20就是整型數(shù)據(jù)。我們都知道整型和浮點(diǎn)型兩者之間可以利用強(qiáng)制類型轉(zhuǎn)換和自動類型轉(zhuǎn)換兩種機(jī)制實(shí)現(xiàn)轉(zhuǎn)換,那么“20”和20這兩種屬于不同類型的數(shù)據(jù)就需要用到String類提供的數(shù)據(jù)類型轉(zhuǎn)換方法了。
由于數(shù)據(jù)類型較多,因而轉(zhuǎn)換使用的方法也比較多,如表3-1所示。
表3-1 字符串的類型轉(zhuǎn)換

- Python for Secret Agents:Volume II
- JavaScript 網(wǎng)頁編程從入門到精通 (清華社"視頻大講堂"大系·網(wǎng)絡(luò)開發(fā)視頻大講堂)
- 精通軟件性能測試與LoadRunner實(shí)戰(zhàn)(第2版)
- 深度學(xué)習(xí):算法入門與Keras編程實(shí)踐
- Python漫游數(shù)學(xué)王國:高等數(shù)學(xué)、線性代數(shù)、數(shù)理統(tǒng)計(jì)及運(yùn)籌學(xué)
- 零基礎(chǔ)趣學(xué)C語言
- Kubernetes源碼剖析
- Tableau Desktop可視化高級應(yīng)用
- Practical Predictive Analytics
- HTML5與CSS3權(quán)威指南
- JavaScript高級程序設(shè)計(jì)(第4版)
- jQuery Essentials
- Java與Android移動應(yīng)用開發(fā):技術(shù)、方法與實(shí)踐
- C#開發(fā)之道
- Go Programming Blueprints