NSString字元高亮演算法

2021-09-22 02:30:59 字數 2522 閱讀 5589

在開發過程中,遇到的一些演算法問題,寫在這裡記錄一下

//搜尋匹配演算法

//高亮中間的字串

//nsstring *astring = @"i am a string, not a astring, just a string";

- (nsmutableattributedstring *)newsetsearchresultstringcolor:(nsstring *)importstring

//獲取substring_2的下標位置

nsarray *substring_2_array=[importstring componentsseparatedbystring:substring_2];

nsmutablearray *arrayoflocation2 = [nsmutablearray array];

d = 0;

for (int i = 0; i < substring_2_array.count - 1; i++)

//高亮中間string 刪除標記string

nsinteger i = arrayoflocation1.count - 1;

nsinteger j = arrayoflocation2.count - 1;

for ( ;i >= 0 && j >= 0; i-- ,j--) ;

[resultstring addattribute:nsforegroundcolorattributename value:[uicolor bluecolor] range:nsmakerange(range.location,range.length)];

nsrange locationrange_1 = ;

nsrange locationrange_2 = ;

[resultstring deletecharactersinrange:locationrange_2];

[resultstring deletecharactersinrange:locationrange_1];

}return resultstring;

}

//nsstring *inputstring = @" a of american";

//nsstring *showstring = @"of i am office a of and american";

//inputstring是輸入的字元,要讓showstring中所有與inputstring想匹配的單詞高亮

- (nsmutableattributedstring *)showheightlightlabel:(nsstring*)inputstring showlabel:(nsstring*)showlabel

nsrange chartrange = nsmakerange(location, chart.length);

[resultstring addattribute:nsforegroundcolorattributename value:[uicolor bluecolor] range:nsmakerange(chartrange.location,chartrange.length)];

location += chart.length;}}

return resultstring;

}

需求中要求忽略某些文字開頭的內容,所以引入ignorestring

此演算法可以相容上面的高亮演算法 

//nsstring *inputstring = @" a of american";

//nsstring *showstring = @"of i am office a of and american";

//inputstring是輸入的字元,要讓showstring中所有與inputstring想匹配的單詞高亮

//需求中要求忽略某些文字開頭的內容,所以引入ignorestring

//此演算法可以相容上面的高亮演算法

- (nsmutableattributedstring *)showheightlightlabel:(nsstring*)inputstring showlabel:(nsstring*)showlabel withignorestring:(nsstring *)ignorestring

nsrange chartrange = nsmakerange(location, chart.length);

[resultstring addattribute:nsforegroundcolorattributename value:[uicolor bluecolor] range:nsmakerange(chartrange.location,chartrange.length)];

location += chart.length;}}

return resultstring;

}

NSString字元編碼

最近再開發ios程式的時候,發現從url取得的utf8編碼資料中文部分顯示為亂碼,為此在網上查詢了一些資料,對nsstring的編碼問題做一下總結 幫助文件列出的nsstring支援的編碼 enum 列表中很多編碼都沒有,原來這個列表沒有把全部的編碼列出來,通過以下 可以列出nsstring支援的全...

NSString 去除特殊字元

字串過濾 nscharacterset donotwant nscharacterset charactersetwithcharactersinstring 先將 tempstring 用上面的 set 截成乙個陣列,然後在用這個陣列拼成乙個字串 tempstring tempstring com...

NSString字串擷取

1.擷取字串一部分 substringwithrange nsrange nsstring a 01234567890 nsstring b a substringwithrange nsmakerange 0,2 b 01 2.字串擷取到第n位 substringtoindex n 第n位不在擷取...