從一個NSString中獲取指定字節(jié)數(shù)的子串(注:不是字符數(shù))

NSString 懂的人一看就知道,這是古老的iOS OC開發(fā)了.....

例如,在微信分享時,微信對分享內(nèi)容有長度的限制:
標題:512字節(jié)
正文:1024字節(jié)

注意:是字節(jié),不是字符;

下面的算法可以解決這個問題;

/**
 如果sourceString的 字節(jié)數(shù) 超過limitCount,則按照limitCount截斷并返回,
 否則,直接返回sourceString
 */
+ (NSString *)limitString:(NSString *)sourceString bytesLimit:(NSInteger)limitCount {
    if(STR_IS_NIL(sourceString)){
        return sourceString;
    }else{
        NSData *data = [sourceString dataUsingEncoding:NSUTF8StringEncoding];
        if(data.length > limitCount){
            NSString *subString = [sourceString substringToIndex:sourceString.length - 1];
            return [StringTools limitString:subString bytesLimit:limitCount];
        }else{
            return sourceString;
        }
    }
}

因為使用遞歸,并且基本思想傻大笨粗,所以這個不是效率最高的方式,這個方法只能用于應(yīng)急,如果誰有更好的算法,請友情提示我一下啊,先行謝過~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容