Java?中導(dǎo)入excel時(shí)使用?trim()?無法去除空格的問題解決方案
使用trim無法去除空格的解決方法
一、問題描述
在excel導(dǎo)入操作時(shí),讀取cell中的字符串時(shí),獲取到了cell中的字符串后,通過string的trim()方法去掉前后的空格,發(fā)現(xiàn)如論如何也去不掉。
二、原因分析
摸索一段時(shí)間后發(fā)現(xiàn),是輸入法的全角和半角空格的原因,trim()方法只能去掉字符串中的ASCII值為32的空格,即半角的空格,無法去除全角的空格。也就是說,trim或者replace只能去掉ASCII值為32的空格,而ASCII值為160或全角的空格是無法通過replace或者trim處理的全角空格:有的稱呼為 中文空格 ; 半角空格:有的稱呼為 英文空格。例如:開啟全角后,輸入法內(nèi)容是這樣的:abcd 半角輸入是這樣的:abcd ,輸入法,默認(rèn)都是半角的。切換全半角的方式:shift+space
三、解決方案
方案一:使用正則表達(dá)式
ASCII編碼是160的空格,Unicode對(duì)應(yīng)是\u00A0,使用replace+UNICODE編碼\u00A0替換,全角空格(\u3000),使用replace方法+全角空格字符替換,普通空格,使用replace方法+\s替換,正則表達(dá)式.replaceAll(“([ ]|\s|\u00A0)+”,“”)
如下:
public class Demo1 { public static void main(String[] args) { String s2 = "全角空格測試 !!"; System.out.println(s1.replaceAll("([ ]|\\s|\\u00A0)+","")); // 全角空格測試!! } }
方案二:使用String.strip()
我這里的問題是全角空格導(dǎo)致的,所以可以使用String.strip()去除字符串前后的“全角和半角”空白字符
public class Demo1 { public static void main(String[] args) { String s3 = "吃了沒\u3000"; System.out.println(s3.trim().length()); System.out.println(s3.strip().length()); // 4 3 System.out.println(s3.strip()); // "吃了沒" }
注意: JDK11中引入String.strip(),如果你的項(xiàng)目是用的JDK11以下的環(huán)境,是用不了該方法的。
方案三:使用 hutool的 StrUtil.trim()方法
可以使用 spring提供的工具類 StringUtils.trimWhitespace() 去除 字符串中的全角空格代碼如下:
/**@Description: 全角 空格去除測試 */ @Test public void test2(){ String sLeft = " 左全角空格"; String sMid = " 兩邊 全角空格 "; String sRight = "右邊全角空格 "; System.out.println("String工具類 left:"+ org.springframework.util.StringUtils.trimTrailingWhitespace(sLeft)); System.out.println("String工具類 mid:"+ org.springframework.util.StringUtils.trimTrailingWhitespace(sMid)); System.out.println("String工具類 right:"+ org.springframework.util.StringUtils.trimTrailingWhitespace(sRight)); // 使用 hutool的 StrUtil System.out.println("Hutool StrUtil 工具類 left:"+StrUtil.trim(sLeft)); System.out.println("Hutool StrUtil 工具類 mid:"+StrUtil.trim(sMid)); System.out.println("Hutool StrUtil 工具類 right:"+StrUtil.trim(sRight)); }
/**@Description:Hutool StrUtil 去除普通半角空格 * <br> 半角空格=英文空格; 全角空格=中文空格 */ @Test public void test3(){ String sLeft = " 左半角 右全角 "; System.out.println("原始字符串:"+sLeft); System.out.println("hutool :"+StrUtil.trim(sLeft)); System.out.println("StringUtil :"+StringUtils.trim(sLeft)); System.out.println("Spring StringUtil :"+ org.springframework.util.StringUtils.trimWhitespace(sLeft)); // 去掉 字符串中全部空格 System.out.println(org.springframework.util.StringUtils.trimAllWhitespace(sLeft)); sLeft = StrUtil.trim(sLeft); System.out.println("最終去除效果:"+sLeft); }
四、總結(jié)
1、java的String類中的trim方法,只能去除 半角空格,遇到空格去不掉的情況,可能的全角空格,可以考慮使用hutool或者spring提供的工具類試試。
2、hutool 的pom依賴是:
<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.7.18</version> </dependency>
注意:apache-commons-lang3 里的StringUtils工具類,無法去除全角空格,原因是:實(shí)際調(diào)用的是 String類的trim()方法。
到此這篇關(guān)于Java 中導(dǎo)入excel時(shí)使用 trim() 無法去除空格的解決方法的文章就介紹到這了,更多相關(guān)java導(dǎo)入excel使用trim() 無法去除空格內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Springboot pom項(xiàng)目間接依賴包版本與預(yù)期不符原因解決分析
這篇文章主要介紹了Springboot pom項(xiàng)目間接依賴包版本與預(yù)期不符原因解決分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08springboot返回圖片流的實(shí)現(xiàn)示例
本文主要介紹了springboot返回圖片流的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08Java實(shí)用技巧:如何使用String去除開頭的第一個(gè)字符?
這篇文章主要介紹了Java實(shí)用技巧:如何使用String去除開頭的第一個(gè)字符,需要的朋友可以參考下2023-11-11使用spring框架實(shí)現(xiàn)數(shù)據(jù)庫事務(wù)處理方式
這篇文章主要介紹了使用spring框架實(shí)現(xiàn)數(shù)據(jù)庫事務(wù)處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10spring.profiles.active配置使用小結(jié)
spring.profiles.active?配置使得應(yīng)用程序能夠在不同的環(huán)境中使用不同的配置,本文主要介紹了spring.profiles.active配置使用小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下2024-07-07Java發(fā)送http請(qǐng)求的示例(get與post方法請(qǐng)求)
這篇文章主要介紹了Java發(fā)送http請(qǐng)求的示例(get與post方法請(qǐng)求),幫助大家更好的理解和使用Java,感興趣的朋友可以了解下2021-01-01MyBatis分頁查詢返回list的時(shí)候出現(xiàn)null的問題
這篇文章主要介紹了MyBatis分頁查詢返回list的時(shí)候出現(xiàn)null的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07IDEA?Error:java:無效的源發(fā)行版:13的解決過程
之前用idea運(yùn)行時(shí),也會(huì)出現(xiàn)這種情況,后面通過網(wǎng)上的資料解決了這個(gè)問題,下面這篇文章主要給大家介紹了關(guān)于IDEA?Error:java:無效的源發(fā)行版:13的解決過程,需要的朋友可以參考下2023-01-01