Java String字符串的常用使用方法
今天學(xué)習(xí)到了Java中的String,String是Java中一個(gè)非常重要的類,在我們做字符串操作的時(shí)候,需要使用到String。
一、什么是String
String是JDK提供的一個(gè)類,是引用類型,并不是基本的數(shù)據(jù)類型,String用于字符串操作,在之前學(xué)習(xí)c語(yǔ)言的時(shí)候,對(duì)于一些字符串,會(huì)初始化字符數(shù)組表示。
char str [] = {'a', 'b', 'c'};
在Java中,String像是一個(gè)很大的char數(shù)組,我們?cè)诙x字符串的時(shí)候,不需要再去像上方代碼一樣去定義,而是直接可以使用String去定義。
String str = "abc";
String就像是很大的char數(shù)組,但相比于char數(shù)組而言,String可以做字符串拼接操作,而char數(shù)組并不能直接去做字符串的拼接,如下代碼。
String str = "abc" + "def";
二、如何定義一個(gè)String
既然知道String是一個(gè)類,那么類一定有他的初始化方法,在Java中,String的初始化有以下幾種常用的方式。這是官方給出的一些介紹。
1. 用雙引號(hào)定義
String字符串,可以直接通過雙引號(hào)來定義,把需要的字符串內(nèi)容用雙引號(hào)包裹,可以直接對(duì)String類型的對(duì)象賦值。
public class StringDemo { public static void main(String[] args) { String str = "abc"; } }
2. 通過構(gòu)造函數(shù)定義
String作為一個(gè)類,可以通過new關(guān)鍵字初始化,在Java中可以通過構(gòu)造函數(shù)對(duì)String類型的對(duì)象賦值。
public class StringDemo { public static void main(String[] args) { String str = new String("abc"); System.out.println(str); } }
這是一種基本的構(gòu)造字符串的方式,除此之外還有一些其他的構(gòu)造方式。
通過無參構(gòu)造函數(shù)初始化
這樣的方式初始化的String的值為空,也就是什么都沒有。
public String() { this.value = "".value; this.coder = "".coder; }
通過char數(shù)組進(jìn)行初始化
String可以傳入一個(gè)char數(shù)組進(jìn)行初始化,String會(huì)拼接char數(shù)組當(dāng)中的所有字符。
public String(char value[]) { this(value, 0, value.length, null); }
帶位移的方式通過char數(shù)組進(jìn)行初始化
這樣的方式和上邊的方式其實(shí)是一樣的,只不過在初始化字符串的時(shí)候,會(huì)根據(jù)傳入的offset作為char數(shù)組開始拼接的起始索引,并且拼接上count個(gè)字符。
public String(char value[], int offset, int count) { this(value, offset, count, rangeCheck(value, offset, count)); }
除了以上幾種常用的方式外,還有一些其他的方式,如通過int數(shù)組進(jìn)行初始化,通過byte數(shù)組進(jìn)行初始化,大家感興趣的話可以自己研究一下。
三、String中的一些常用方法
了解到什么是String,下面就要理解一些String中常用的方法。
1 字符串比較
字符串之間的比較又分為很多不同的方法,下邊是一些常用的字符串比較方法。
1.1 字符串使用 ==
字符串使用 == 操作,其實(shí)是一個(gè)有坑的點(diǎn),一般不用,這里不在多講,有興趣的可以嘗試一下以下代碼。
1.2 字符串使用equals()
字符串的比較,使用這個(gè)方法比較多一點(diǎn)。
1.3 使用 equalsIgnoreCase()
這個(gè)方法相比于普通的equals方法的區(qū)別是,這個(gè)方法是忽略大小寫的。
除此之外,字符串比較還有這兩個(gè)方法。
1.4 cpmpareTo和compareToIgnoreCase
這兩個(gè)方法和equals方法的區(qū)別是,equals返回的是boolean類型的變量,而compare方法返回的是int類型的變量。
具體比較方法如下:
兩個(gè)字符串按照單個(gè)字符從前向后作比較,遇到不同的字符,返回兩個(gè)字符的差值如果兩個(gè)字符比較完成了,沒有發(fā)現(xiàn)不同的字符,返回兩個(gè)字符串的長(zhǎng)度差。
2 字符串大小寫轉(zhuǎn)換
String中還提供了一些字符串大小寫轉(zhuǎn)換的方法。
2.1 toUpperCase()
這個(gè)方法就是把字符串全部轉(zhuǎn)換為大寫。
2.2 toLowerCase()
這個(gè)方法把字符串全部轉(zhuǎn)換為小寫
3 字符串長(zhǎng)度獲取
3.1 length()
字符串長(zhǎng)度的獲取通過以下方法獲取。
4 判斷是否包含一段字符串
4.1 contains()
String是有子字符串的概念的,比如我們要查看某個(gè)字符串中是否包含一小段的字符串,我們可以用以下方法。
5 字符串切割和拼接
5.1 split()
字符串的切割和拼接是非常實(shí)用的方法,現(xiàn)在我們有這樣的一個(gè)字符串。
String students = "zhangsan,lisi,wangwu,liuliu";
我們想要把這些姓名拆分出來,就需要用到下邊的方法。
對(duì)于字符串切割,我們需要傳入一個(gè)作為分割的字符,在上方的代碼當(dāng)中傳入的是一個(gè)",",當(dāng)然在具體應(yīng)用的時(shí)候,還要根據(jù)具體的場(chǎng)景做分析。
5.2 join()
除了字符串分割外,當(dāng)然也有字符串拼接的操作,如果我們想把studentArr中的學(xué)生姓名用橫杠拼接起來,像這樣
zhangsan-lisi-wangwu-liuliu
需要以下代碼完成,這里只介紹基本的使用。
6 字符串尋找字串起始位置
我們可以判斷字串是否存在,也可以獲取子串在字符串的起始索引。
6.1 indexOf()
看下方代碼,我們?cè)噲D在字符串中尋找有沒有值為"lisi"的字符串,我們調(diào)用indexOf方法就可以,
indexOf方法有兩種,一種是直接傳匹配字串,另外一種是傳入匹配子串的同時(shí)傳入開始匹配的起始下邊,比如我們從索引10開始尋找,因?yàn)閘isi的開始索引為9,當(dāng)我們把開始匹配的下標(biāo)放到10的時(shí)候,就沒有辦法在匹配到"lisi"了。
6.2 lastIndexOf()
和indexOf()是一樣的,不同的是,lastIndexOf()是判斷的結(jié)尾,是從后往前找的。
7 獲取字串
7.1 substring()
字串可以判斷存不存在,可以獲取起始下標(biāo),當(dāng)然也可以獲取子串。通過起始下標(biāo)和結(jié)束下標(biāo)來截取子串。
8 字符串替換
replace:有兩個(gè)重載形式,replace(char oldChar, char newChar)用于字符替換,replace(CharSequence target, CharSequence replacement) 可用于字符串替換。這里的CharSequence是字符串序列,簡(jiǎn)單理解就是字符串 ,該方法不會(huì)將參數(shù)解析為正則表達(dá)式。
replaceAll:方法簽名為replaceAll(String regex, String replacement),參數(shù)regex要求是一個(gè)正則表達(dá)式字符串,它會(huì)按照正則表達(dá)式規(guī)則去匹配字符串中的子串并替換 。如果傳入的不是正則表達(dá)式,也會(huì)當(dāng)作普通字符串處理。
replaceFirst:方法簽名為replaceFirst(String regex, String replacement) ,和replaceAll一樣,第一個(gè)參數(shù)regex也是基于正則表達(dá)式的,不過它只替換第一次匹配到的子串。當(dāng)傳入非正則表達(dá)式的普通字符串時(shí),也能進(jìn)行字符串替換操作。
對(duì)于一些不想要的字符,也是可以替換的,拿上方的這個(gè)字符串來說。
String students = "zhangsan,lisi,wangwu,liuliu";
如果不想要逗號(hào)了,想要用橫線分割,下方代碼可以實(shí)現(xiàn)。
8.1 replace()
8.2 replaceAll()
與replace()不同的是,replaceAll()是可以傳入正則表達(dá)式的,這里不在講正則表達(dá)式,以下的方式也是可以替換的。
以上就是一些常用的String的使用方法。
到此這篇關(guān)于Java String字符串的基本使用的文章就介紹到這了,更多相關(guān)Java String字符串使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
windows下java環(huán)境變量的設(shè)置方法
在“系統(tǒng)變量”中,設(shè)置3項(xiàng)屬性,JAVA_HOME,PATH,CLASSPATH(大小寫無所謂),若已存在則點(diǎn)擊“編輯”,不存在則點(diǎn)擊“新建”2013-09-09JAVA對(duì)list集合進(jìn)行排序Collections.sort()
這篇文章主要介紹了JAVA對(duì)list集合進(jìn)行排序Collections.sort(),需要的朋友可以參考下2017-01-01rabbitmq五種模式詳解(含實(shí)現(xiàn)代碼)
這篇文章主要介紹了rabbitmq五種模式詳解(含實(shí)現(xiàn)代碼),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04java String、Json對(duì)象與byte數(shù)組轉(zhuǎn)換方式
這篇文章主要介紹了java String、Json對(duì)象與byte數(shù)組轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07java中\(zhòng)t,\n,\r,\b,\f 的作用及說明
這篇文章主要介紹了java中\(zhòng)t,\n,\r,\b,\f 的作用及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07java中給實(shí)體對(duì)象屬性的空值賦默認(rèn)值
這篇文章主要介紹了java中給實(shí)體對(duì)象屬性的空值賦默認(rèn)值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03