Java String字符串的常用使用方法
今天學習到了Java中的String,String是Java中一個非常重要的類,在我們做字符串操作的時候,需要使用到String。
一、什么是String
String是JDK提供的一個類,是引用類型,并不是基本的數(shù)據(jù)類型,String用于字符串操作,在之前學習c語言的時候,對于一些字符串,會初始化字符數(shù)組表示。
char str [] = {'a', 'b', 'c'};在Java中,String像是一個很大的char數(shù)組,我們在定義字符串的時候,不需要再去像上方代碼一樣去定義,而是直接可以使用String去定義。
String str = "abc";
String就像是很大的char數(shù)組,但相比于char數(shù)組而言,String可以做字符串拼接操作,而char數(shù)組并不能直接去做字符串的拼接,如下代碼。
String str = "abc" + "def";
二、如何定義一個String
既然知道String是一個類,那么類一定有他的初始化方法,在Java中,String的初始化有以下幾種常用的方式。這是官方給出的一些介紹。

1. 用雙引號定義
String字符串,可以直接通過雙引號來定義,把需要的字符串內(nèi)容用雙引號包裹,可以直接對String類型的對象賦值。
public class StringDemo {
public static void main(String[] args) {
String str = "abc";
}
}2. 通過構(gòu)造函數(shù)定義
String作為一個類,可以通過new關(guān)鍵字初始化,在Java中可以通過構(gòu)造函數(shù)對String類型的對象賦值。
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ù)組進行初始化
String可以傳入一個char數(shù)組進行初始化,String會拼接char數(shù)組當中的所有字符。
public String(char value[]) {
this(value, 0, value.length, null);
}帶位移的方式通過char數(shù)組進行初始化
這樣的方式和上邊的方式其實是一樣的,只不過在初始化字符串的時候,會根據(jù)傳入的offset作為char數(shù)組開始拼接的起始索引,并且拼接上count個字符。
public String(char value[], int offset, int count) {
this(value, offset, count, rangeCheck(value, offset, count));
}
除了以上幾種常用的方式外,還有一些其他的方式,如通過int數(shù)組進行初始化,通過byte數(shù)組進行初始化,大家感興趣的話可以自己研究一下。
三、String中的一些常用方法
了解到什么是String,下面就要理解一些String中常用的方法。
1 字符串比較
字符串之間的比較又分為很多不同的方法,下邊是一些常用的字符串比較方法。

1.1 字符串使用 ==
字符串使用 == 操作,其實是一個有坑的點,一般不用,這里不在多講,有興趣的可以嘗試一下以下代碼。

1.2 字符串使用equals()
字符串的比較,使用這個方法比較多一點。


1.3 使用 equalsIgnoreCase()
這個方法相比于普通的equals方法的區(qū)別是,這個方法是忽略大小寫的。


除此之外,字符串比較還有這兩個方法。
1.4 cpmpareTo和compareToIgnoreCase

這兩個方法和equals方法的區(qū)別是,equals返回的是boolean類型的變量,而compare方法返回的是int類型的變量。
具體比較方法如下:
兩個字符串按照單個字符從前向后作比較,遇到不同的字符,返回兩個字符的差值如果兩個字符比較完成了,沒有發(fā)現(xiàn)不同的字符,返回兩個字符串的長度差。


2 字符串大小寫轉(zhuǎn)換
String中還提供了一些字符串大小寫轉(zhuǎn)換的方法。

2.1 toUpperCase()
這個方法就是把字符串全部轉(zhuǎn)換為大寫。

2.2 toLowerCase()
這個方法把字符串全部轉(zhuǎn)換為小寫

3 字符串長度獲取
3.1 length()
字符串長度的獲取通過以下方法獲取。

4 判斷是否包含一段字符串
4.1 contains()
String是有子字符串的概念的,比如我們要查看某個字符串中是否包含一小段的字符串,我們可以用以下方法。

5 字符串切割和拼接
5.1 split()
字符串的切割和拼接是非常實用的方法,現(xiàn)在我們有這樣的一個字符串。
String students = "zhangsan,lisi,wangwu,liuliu";
我們想要把這些姓名拆分出來,就需要用到下邊的方法。


對于字符串切割,我們需要傳入一個作為分割的字符,在上方的代碼當中傳入的是一個",",當然在具體應(yīng)用的時候,還要根據(jù)具體的場景做分析。
5.2 join()
除了字符串分割外,當然也有字符串拼接的操作,如果我們想把studentArr中的學生姓名用橫杠拼接起來,像這樣
zhangsan-lisi-wangwu-liuliu
需要以下代碼完成,這里只介紹基本的使用。

6 字符串尋找字串起始位置
我們可以判斷字串是否存在,也可以獲取子串在字符串的起始索引。

6.1 indexOf()
看下方代碼,我們試圖在字符串中尋找有沒有值為"lisi"的字符串,我們調(diào)用indexOf方法就可以,
indexOf方法有兩種,一種是直接傳匹配字串,另外一種是傳入匹配子串的同時傳入開始匹配的起始下邊,比如我們從索引10開始尋找,因為lisi的開始索引為9,當我們把開始匹配的下標放到10的時候,就沒有辦法在匹配到"lisi"了。

6.2 lastIndexOf()
和indexOf()是一樣的,不同的是,lastIndexOf()是判斷的結(jié)尾,是從后往前找的。
7 獲取字串
7.1 substring()
字串可以判斷存不存在,可以獲取起始下標,當然也可以獲取子串。通過起始下標和結(jié)束下標來截取子串。



8 字符串替換
replace:有兩個重載形式,replace(char oldChar, char newChar)用于字符替換,replace(CharSequence target, CharSequence replacement) 可用于字符串替換。這里的CharSequence是字符串序列,簡單理解就是字符串 ,該方法不會將參數(shù)解析為正則表達式。
replaceAll:方法簽名為replaceAll(String regex, String replacement),參數(shù)regex要求是一個正則表達式字符串,它會按照正則表達式規(guī)則去匹配字符串中的子串并替換 。如果傳入的不是正則表達式,也會當作普通字符串處理。
replaceFirst:方法簽名為replaceFirst(String regex, String replacement) ,和replaceAll一樣,第一個參數(shù)regex也是基于正則表達式的,不過它只替換第一次匹配到的子串。當傳入非正則表達式的普通字符串時,也能進行字符串替換操作。
對于一些不想要的字符,也是可以替換的,拿上方的這個字符串來說。
String students = "zhangsan,lisi,wangwu,liuliu";
如果不想要逗號了,想要用橫線分割,下方代碼可以實現(xiàn)。
8.1 replace()

8.2 replaceAll()

與replace()不同的是,replaceAll()是可以傳入正則表達式的,這里不在講正則表達式,以下的方式也是可以替換的。

以上就是一些常用的String的使用方法。
到此這篇關(guān)于Java String字符串的基本使用的文章就介紹到這了,更多相關(guān)Java String字符串使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java?MyBatis實戰(zhàn)之QueryWrapper中and和or拼接技巧大全
在Java中QueryWrapper是MyBatis-Plus框架中的一個查詢構(gòu)造器,它提供了豐富的查詢方法,其中包括and和or方法,可以用于構(gòu)建復雜的查詢條件,這篇文章主要給大家介紹了關(guān)于Java?MyBatis實戰(zhàn)之QueryWrapper中and和or拼接技巧的相關(guān)資料,需要的朋友可以參考下2024-07-07
使用java swing實現(xiàn)qq登錄界面示例分享
這篇文章主要介紹了使用java swing實現(xiàn)qq登錄界面示例,需要的朋友可以參考下2014-04-04
SiteMesh如何結(jié)合Freemarker及velocity使用
這篇文章主要介紹了SiteMesh如何結(jié)合Freemarker及velocity使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-10-10
springboot自動裝配之@ComponentScan使用方式
@componentScan注解用于掃描指定路徑下的組件,并自動將它們注冊為Spring?Bean,該注解支持多種過濾規(guī)則,可以自定義掃描過濾規(guī)則,Spring?Boot通過ConfigurationClassPostProcessor處理@ComponentScan注解,并在啟動時創(chuàng)建和注冊BeanDefinition對象2025-01-01
Java Redis Template批量查詢指定鍵值對的實現(xiàn)
本文主要介紹了Java Redis Template批量查詢指定鍵值對的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-07-07


