C++中SWIFT 去除字串首尾的空格,以及指定字串程式

來源:互聯網
上載者:User

@import url/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);
@import url(/css/cuteeditor.css);

直接給一段調用執行個體:

@import url/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);
@import url(/css/cuteeditor.css);

var str = "       \n   \r \r\n \t Hello, \n playground  \n  \t \t \n \n\r   \n    "
let length = (str as NSString).length
let a = str.escapeHeadTailSpace()
let b = str.stringEscapeHeadTail(strs:["\r", "\n", "\t", "\r\n", " "])

對應結果:

a::\t Hello, \n playground  \n 
b::Hello, \n playground

處理原理是:針對一個字串,每次按一個位元組跳過給定的字串,並返回新得到的字串,反覆迭代,直到原字串中已經找不到給定的字串。這樣,包含在中間的字元是不去除的。

將得到的新字串反轉,同樣在處理一遍。這樣頭尾部的排除字串集都可以了。然後再將結果反轉,得到原來順序的字串,即我們需要的結果.

單純去除其中所有的某個字元集,有原生方法,不再次考慮
這是針對String的擴充:

extension String{
    func escapeSpaceTillCahractor()->String{
        return self.stringEscapeHeadTail(strs:["\r", " ", "\n"])
    }
    func escapeHeadStr(str:String)->(String, Bool){
        var result = self as NSString
        var findAtleastOne = false
        while( true ){
            var range = result.rangeOfString(str)
            if range.location == 0 && range.length == 1 {
                result = result.substringFromIndex(range.length)
                findAtleastOne = true
            }else{
                break
            }
        }
        return (result as String, findAtleastOne)
    }
    func escapeSpaceTillCahractor(#strs:[String])->String{
        var result = self
        while( true ){
            var findAtleastOne = false
            for str in strs {
                var found:Bool = false
                (result, found) = result.escapeHeadStr(str)
                if found {
                    findAtleastOne = true
                    break  //for迴圈
                }
            }
            if findAtleastOne == false {
                break
            }
        }
        return result as String
    }
    func reverse()->String{
        var inReverse = ""
        for letter in self {
            println(letter)
            inReverse = "\(letter)" + inReverse
        }
        return inReverse
    }

    func escapeHeadTailSpace()->String{
        return self.escapeSpaceTillCahractor().reverse().escapeSpaceTillCahractor().reverse()
    }

    func stringEscapeHeadTail(#strs:[String])->String{
        return self.escapeSpaceTillCahractor(strs:strs).reverse().escapeSpaceTillCahractor(strs:strs).reverse()
    }
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.