首頁  >  文章  >  Java  >  分享Java中TrimHelper方法實例

分享Java中TrimHelper方法實例

零下一度
零下一度原創
2017-05-20 10:04:152082瀏覽

  我們一般用trim()方法的主要作用,是為了去除字串的首尾空格。然而根據我個人的實務經驗發現,trim()這個方法只能去除部分的空格或空白符,例如半角空格;對於全角空格的話,用trim()並不能去除掉。所以這時候就需要透過正規來解決,去掉字串首尾空格、空格符號、換行符或製表符、換行符等:

public static void main(String[] args){
     String keyword = "    空格符与制表符等      ";
     keyword = keyword.replaceAll("^[ *| *| *|//s*]*", "").replaceAll("[ *| *| *|//s*]*$", "");
     System.out.println("keyword : "+keyword);      
}

  還有一個我網上查找到的資料是這麼解釋的:首先將trim()這個方法進行反編譯,得到:

public string Trim()
{    return this.TrimHelper(WhitespaceChars, 2);
}

  TrimHelper這個方法進行反編譯之後得到:

private string TrimHelper(char[] trimChars, int trimType)
{    int num = this.Length - 1;    int startIndex = 0;    if (trimType != 1)
    {
        startIndex = 0;        while (startIndex < this.Length)
        {            int index = 0;            char ch = this[startIndex];
            index = 0;            while (index < trimChars.Length)
            {                if (trimChars[index] == ch)
                {                    break;
                }
                index++;
            }            if (index == trimChars.Length)
            {                break;
            }
            startIndex++;
        }
    }    if (trimType != 0)
    {
        num = this.Length - 1;        while (num >= startIndex)
        {            int num4 = 0;            char ch2 = this[num];
            num4 = 0;            while (num4 < trimChars.Length)
            {                if (trimChars[num4] == ch2)
                {                    break;
                }
                num4++;
            }            if (num4 == trimChars.Length)
            {                break;
            }
            num--;
        }
    }    int length = (num - startIndex) + 1;    if (length == this.Length)
    {        return this;
    }    if (length == 0)
    {        return Empty;
    }    return this.InternalSubString(startIndex, length, false);
}

  TrimHelper有兩個參數:第一個參數trimChars,是要從字串兩端刪除掉的字元的陣列;第二個參數trimType,是標識Trim()的型別。 trimType的值有3個:當傳入0時,移除字串頭部的空白字元;傳入1時,移除字串尾部的空白字元;傳入其他數值則去掉字串兩端的空白字元。最後得出總結是:String.Trim()方法會去除字串兩端,而不僅僅是空格字符,它總共能去除25種字符:('/t', '/n', '/v', ' /f', '/r', ' ', '/x0085', '/x00a0', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '?', '/u2028', '/u2029', ' ', '?')。

  另外還有兩個方法和trim()類似:去除字串頭部空白字元的TrimStart()和移除字串尾部空白字元的TrimEnd()。

  如果想要去除字串兩端的任意字符,可使用Trim的重載方法:String.Trim(Char[]),該方法的源碼是:

public string Trim(params char[] trimChars)
{    if ((trimChars == null) || (trimChars.Length == 0))
    {
        trimChars = WhitespaceChars;
    }    return this.TrimHelper(trimChars, 2);
}

  需要注意的是:空格!= 空白字符,想要刪除空格可以使用Trim(' ')。

【相關推薦】

1. java trim的用法實例詳解

2. 詳解Java中String.trim ()方法實例

3. js中的trim() 如何去掉字串兩邊的空格

4. Java中的trim( )函數

5. 移除字串首尾空格和特殊字元的PHP函數trim()

#

以上是分享Java中TrimHelper方法實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn