java 使用正則表達(dá)式去除前后空格
問題描述:
java去除字符串前后空白,身為小伙子的我搞了大半天,其實(shí)蠻簡(jiǎn)單的。
解決方案:
方式一:
trim() trim()是 String里的常用的方法,作用:返回字符串的副本,忽略前導(dǎo)空白和尾部空白*

輸出結(jié)果:

方式二:正則表達(dá)式:
replaceAll(String regex,String replacement):也是String類的常用方法,
是一個(gè)形參為可以填正則表達(dá)式,第二形參為替換的內(nèi)容
這里需要的正則式:
(1) \s 表示空格,
(2) ^表示開頭
(3) $表示結(jié)尾
(4) +表示數(shù)量

輸出結(jié)果:

完結(jié)~
補(bǔ)充:JAVA正則表達(dá)式匹配多個(gè)空格
需求
針對(duì)tab鍵帶來的多個(gè)空格問題,有時(shí)候我們針對(duì)帶空格的一行數(shù)據(jù)要進(jìn)行切割,如果有多個(gè)空格就會(huì)出現(xiàn)就會(huì)切割空格出現(xiàn),我們想把空格都去掉,所以需要用到某些方法。
解決方案
利用正則表達(dá)式來匹配空格
\\s+
首先利用split("\\s+");方法來對(duì)字符串切割,盡可能的匹配空格,這里也挺有意思,因?yàn)榭崭駭?shù)目不一樣,可以動(dòng)態(tài)變換匹配的空格數(shù)量,這個(gè)實(shí)現(xiàn)原理可以看看底層原理,挺有意思。
測(cè)試:
String string="a b a a ";
for(String a:string.split("\\s+")){
System.out.println(a);
}
擴(kuò)充知識(shí)
正則表達(dá)式的() [] {}有不同的意思。
() 是為了提取匹配的字符串。表達(dá)式中有幾個(gè)()就有幾個(gè)相應(yīng)的匹配字符串。(\s*)表示連續(xù)空格的字符串。
[]是定義匹配的字符范圍。比如 [a-zA-Z0-9] 表示相應(yīng)位置的字符要匹配英文字符和數(shù)字。[\s*]表示空格或者*號(hào)。
{}一般用來表示匹配的長(zhǎng)度,比如 \s{3} 表示匹配三個(gè)空格,\s{1,3}表示匹配一到三個(gè)空格。
(0-9) 匹配 '0-9′ 本身。 [0-9]* 匹配數(shù)字(注意后面有 *,可以為空)[0-9]+ 匹配數(shù)字(注意后面有 +,不可以為空){1-9} 寫法錯(cuò)誤。
[0-9]{0,9} 表示長(zhǎng)度為 0 到 9 的數(shù)字字符串
()和[]有本質(zhì)的區(qū)別
()內(nèi)的內(nèi)容表示的是一個(gè)子表達(dá)式,()本身不匹配任何東西,也不限制匹配任何東西,只是把括號(hào)內(nèi)的內(nèi)容作為同一個(gè)表達(dá)式來處理,
例如:(ab){1,3},就表示ab一起連續(xù)出現(xiàn)最少1次,最多3次。如果沒有括號(hào)的話,ab{1,3},就表示a,后面緊跟的b出現(xiàn)最少1次,最多3次。另外,括號(hào)在匹配模式中也很重要。這個(gè)就不延伸了,LZ有興趣可以自己查查
[]表示匹配的字符在[]中,并且只能出現(xiàn)一次,并且特殊字符寫在[]會(huì)被當(dāng)成普通字符來匹配。例如[(a)],會(huì)匹配(、a、)、這三個(gè)字符。
所以() [] 無論是作用還是表示的含義,都有天壤之別,沒什么聯(lián)系
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
Feign遠(yuǎn)程調(diào)用Multipartfile參數(shù)處理
這篇文章主要介紹了Feign遠(yuǎn)程調(diào)用Multipartfile參數(shù)處理,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
java 多態(tài)性詳解及簡(jiǎn)單實(shí)例
這篇文章主要介紹了java 多態(tài)性詳解及簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-02-02
Java序列化和反序列化_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
把對(duì)象轉(zhuǎn)換為字節(jié)序列的過程稱為對(duì)象的序列化,把字節(jié)序列恢復(fù)為對(duì)象的過程稱為對(duì)象的反序列化。接下來通過本文給大家介紹Java序列化和反序列化及主要的兩種用途,感興趣的的友參考下吧2017-05-05
Springcloud Eureka配置及集群代碼實(shí)例
這篇文章主要介紹了Springcloud Eureka配置及集群代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12
在Java的Hibernate框架中使用SQL語句的簡(jiǎn)單介紹
這篇文章主要介紹了在Java的Hibernate框架中使用SQL語句的方法,Hibernate是Java的SSH三大web開發(fā)框架之一,需要的朋友可以參考下2016-01-01
Java使用ES?Client?調(diào)用滾動(dòng)查詢及Elasticsearch滾動(dòng)查詢Scrolling機(jī)制
Elasticsearch提供了一種稱為"滾動(dòng)查詢"(Scrolling)的機(jī)制,用于處理大型數(shù)據(jù)集的分頁查詢,這篇文章給大家介紹滾動(dòng)查詢的一般步驟及Java使用ESClient調(diào)用滾動(dòng)查詢的方法,感興趣的朋友一起看看吧2023-08-08
關(guān)于junit單元測(cè)試@Test的使用方式
這篇文章主要介紹了關(guān)于junit單元測(cè)試@Test的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07
Springboot中如何通過yml為實(shí)體類注入屬性
這篇文章主要介紹了Springboot中如何通過yml為實(shí)體類注入屬性,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05
java數(shù)據(jù)庫連接池和數(shù)據(jù)庫連接示例
這篇文章主要介紹了java數(shù)據(jù)庫連接池和數(shù)據(jù)庫連接示例,需要的朋友可以參考下2014-05-05

