Java截取字符串的幾種方法示例
0 寫在前面
在實(shí)際工作中有一些地方需要用到截取字符串的方法,所以在此記錄下截取字符串的幾種方法。
- .substring()
- StringUtils.substring()
- split()+正則表達(dá)式
1 .substring()
這個(gè)是比較常用的一個(gè)方法。
此方法有兩種形式:
substring(int beginIndex); //提取從索引位置開始至結(jié)尾處的字符串部分 substring(int beginIndex,int endIndex); //提取beginIndex開始到endIndex的字符串部分
實(shí)例代碼:
String str = "你好,Java練習(xí)生";
//substring(int beginIndex);
String substring1 = str.substring(3);
//substring(int beginIndex,int endIndex);
String substring2 = str.substring(3, 7);
System.out.println(substring1);//Java練習(xí)生
System.out.println(substring2);//Java
需要注意的是:計(jì)數(shù)從0開始,如果超過了字符串長度則會(huì)報(bào)錯(cuò):
java.lang.StringIndexOutOfBoundsException: String index out of range:
計(jì)算位置示意圖

2 split()+正則表達(dá)式
不常用,不過在某些特定場合特別好用。
格式:字符串.split("指定分隔符");–返回的是一個(gè)數(shù)組
舉例(以英文逗號(hào)為分隔符):
String str = "good,good,study,day,day,up";
String[] split = str.split(",");
for (String s:
split) {
System.out.println(s);
}

3 StringUtils.substring()
需要在導(dǎo)入StringUtils的工具類。結(jié)合了很多方法。
因?yàn)槊總€(gè)人用的工具類不同所以只記錄一種。
maven導(dǎo)入:
<dependency>
<groupId>com.lispcast</groupId>
<artifactId>org.apache.commons.lang</artifactId>
<version>2.5.0</version>
</dependency>
- String substring(String str,int start):避免異常地從指定的String獲取一個(gè)子字符串。
- String substring(String str,int start, int end):可避免異常地從指定的String獲取一個(gè)子字符串。
- String substringAfter(String str,String separator):在第一次出現(xiàn)分隔符后獲取子字符串。
- String substringAfterLast(String str,String separator):在最后一次出現(xiàn)分隔符之后獲取子字符串。
- String substringBefore(String str,String separator):在第一次出現(xiàn)分隔符之前獲取子字符串。
- String substringBeforeLast(String str,String separator):在最后一次出現(xiàn)分隔符之前獲取子字符串。
- String substringBetween(String str,String tag):獲取嵌套在同一String的兩個(gè)實(shí)例之間的String。
- String substringBetween(String str, String open, String close):獲取嵌套在兩個(gè)字符串之間的字符串。
測試:
String str = "大家好,我是練習(xí)兩年半的個(gè)人練習(xí)生,cxk";
//- String substring(String str,int start):避免異常地從指定的String獲取一個(gè)子字符串。
String substring1 = StringUtils.substring(str, 4);
//- String substring(String str,int start, int end):可避免異常地從指定的String獲取一個(gè)子字符串。
String substring2 = StringUtils.substring(str, 4, 7);
//- String substringAfter(String str,String separator):在第一次出現(xiàn)分隔符后獲取子字符串。
String substringAfter = StringUtils.substringAfter(str, ",");
//- String substringAfterLast(String str,String separator):在最后一次出現(xiàn)分隔符之后獲取子字符串。
String substringAfterLast = StringUtils.substringAfterLast(str, ",");
//- String substringBefore(String str,String separator):在第一次出現(xiàn)分隔符之前獲取子字符串。
String substringBefore = StringUtils.substringBefore(str, ",");
//- String substringBeforeLast(String str,String separator):在最后一次出現(xiàn)分隔符之前獲取子字符串。
String substringBeforeLast = StringUtils.substringBeforeLast(str, ",");
//- String substringBetween(String str,String tag):獲取嵌套在同一String的兩個(gè)實(shí)例之間的String。
String substringBetween1 = StringUtils.substringBetween(str, ",");
// - String substringBetween(String str, String open, String close):獲取嵌套在兩個(gè)字符串之間的字符串。
String substringBetween2 = StringUtils.substringBetween(str, "好", "的");
System.out.println(substring1);
System.out.println(substring2);
System.out.println(substringAfter);
System.out.println(substringAfterLast);
System.out.println(substringBefore);
System.out.println(substringBeforeLast);
System.out.println(substringBetween1);
System.out.println(substringBetween2);

4 寫在最后
注意:substring() 方法是按字符截取,而不是按字節(jié)截取。
工具類沒什么神奇的,都是編寫好的方法直接拿來用的,省事,也可以自行嘗試編寫工具類。
到此這篇關(guān)于Java截取字符串的幾種方法的文章就介紹到這了,更多相關(guān)Java截取字符串內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用jekins自動(dòng)構(gòu)建部署java maven項(xiàng)目的方法步驟
這篇文章主要介紹了使用jekins自動(dòng)構(gòu)建部署java maven項(xiàng)目的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
idea運(yùn)行程序報(bào)錯(cuò)java程序包org.junit不存在解決辦法
這篇文章主要給大家介紹了關(guān)于idea運(yùn)行程序報(bào)錯(cuò)java程序包org.junit不存在的解決辦法, 當(dāng)出現(xiàn)程序包org.junit不存在的問題時(shí),可以通過使用適當(dāng)?shù)腏Unit版本、添加依賴或重新下載程序包等方式進(jìn)行解決,需要的朋友可以參考下2024-02-02
Java Integer.valueOf()和Integer.parseInt()的區(qū)別說明
這篇文章主要介紹了Java Integer.valueOf()和Integer.parseInt()的區(qū)別說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-08-08
MyBatis中XML 映射文件中常見的標(biāo)簽說明
這篇文章主要介紹了MyBatis中XML 映射文件中常見的標(biāo)簽說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
利用Redis實(shí)現(xiàn)延時(shí)處理的方法實(shí)例
這篇文章主要給大家介紹了關(guān)于利用Redis實(shí)現(xiàn)延時(shí)處理的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用Redis具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
IntelliJ IDEA 2020.2正式發(fā)布,兩點(diǎn)多多總能助你提效
這篇文章主要介紹了IntelliJ IDEA 2020.2正式發(fā)布,諸多亮點(diǎn)總有幾款能助你提效,本文通過圖文實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下2020-07-07

