String.trim()消除不了空格的問題及解決
String.trim()消除不了空格
項目中在后臺處理空格的時候使用trim()方法沒起效果
解決方法
transUserName.replaceAll("\\u00A0","");原因:
前臺傳過來的是用html轉(zhuǎn)義字符 生成的全角空格,而trim()方法只能消除半角的空格。
擴展
查看源碼如下
/**
* @return A string whose value is this string, with any leading and trailing white
* space removed, or this string if it has no leading or
* trailing white space.
*/
public String trim() {
int len = value.length;
int st = 0;
char[] val = value; /* avoid getfield opcode */
while ((st < len) && (val[st] <= ' ')) {
st++;
}
while ((st < len) && (val[len - 1] <= ' ')) {
len--;
}
return ((st > 0) || (len < value.length)) ? substring(st, len) : this;
}原文的”white space“中文直譯為”留白“或”空白“,但是常見文檔一般翻譯為”空格“,而空格的英文一般應譯為”blank”或”space”,所以這塊容易引起歧義。
心得:
trim()方法實際上trim掉了字符串兩端Unicode編碼小于等于32(\u0020)的所有字符,而全角空格\u00A0的Unicode編碼為12288。
String.trim()方法說明
API說明
trim
public String trim()返回字符串的副本,忽略前導空白和尾部空白。
如果此 String 對象表示一個空字符序列,或者此 String 對象表示的字符序列的第一個和最后一個字符的代碼都大于 '\u0020'(空格字符),則返回對此 String 對象的引用。
否則,若字符串中沒有代碼大于 '\u0020' 的字符,則創(chuàng)建并返回一個表示空字符串的新 String 對象。
否則,假定 k 為字符串中代碼大于 '\u0020' 的第一個字符的索引,m 為字符串中代碼大于 '\u0020' 的最后一個字符的索引。創(chuàng)建一個新的 String 對象,它表示此字符串中從索引 k 處的字符開始,到索引 m 處的字符結(jié)束的子字符串,即 this.substring(k, m+1) 的結(jié)果。
此方法可用于截去字符串開頭和末尾的空白(如上所述)。
返回:
此字符串移除了前導和尾部空白的副本;如果沒有前導和尾部空白,則返回此字符串。
示例代碼
/**
* @Title: TrimTest.java
* @Package com.burns
* @Description: TODO(用一句話描述該文件做什么)
* @author 35725
* @date 2019年11月29日 上午11:45:17
* @version V1.0
*/
package com.burns;
/**
* @ClassName: TrimTest
* @Description: TODO(這里用一句話描述這個類的作用)
* @author 35725
* @date 2019年11月29日
*
*/
public class TrimTest {
public static void main(String[] args) {
String s= " 1 1 2 3 ";
System.out.println("trim方法執(zhí)行之后>>>>"+s.trim()+"<<<<");
System.out.println("源字符串:>>>>"+s+"<<<<<<");
}
}執(zhí)行結(jié)果
trim方法執(zhí)行之后>>>>1 1 2 3<<<<
源字符串:>>>> 1 1 2 3 <<<<<<
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Spark SQL關于性能調(diào)優(yōu)選項詳解
這篇文章將為大家詳細講解有關Spark SQL性能調(diào)優(yōu)選項,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲2023-02-02
如何解決Field name doesn‘t have a defau
這篇文章主要介紹了如何解決Field name doesn‘t have a default value報錯問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-02-02
idea導入項目不顯示maven側(cè)邊欄的問題及解決方法
這篇文章主要介紹了idea導入項目不顯示maven側(cè)邊欄的問題及解決方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07
Java實現(xiàn)樹形List與扁平List互轉(zhuǎn)的示例代碼
在平時的開發(fā)中,我們時常會遇到需要將"樹形List"與"扁平List"互轉(zhuǎn)的情況,本文為大家整理了Java實現(xiàn)樹形List與扁平List互轉(zhuǎn)的示例代碼,希望對大家有所幫助2023-05-05
springboot實現(xiàn)只修改配置文件就解決swagger漏洞的問題
這篇文章主要介紹了springboot實現(xiàn)只修改配置文件就解決swagger漏洞的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2026-03-03

