如何从NSMutableAttributedString中删除\ t?

时间:2015-09-16 07:17:17

标签: objective-c nsstring nsattributedstring

我有NSMutableAttributedString,其字符串包含制表符。我想删除它

示例NSstring

Hello text
    •   Text1
    •   Text2
    •   Text3

我尝试了下面的代码,但它没有按预期工作。

NSMutableAttributedString *displayText;
NSCharacterSet *charSet = [NSCharacterSet whitespaceCharacterSet];
NSRange range           = [displayText.string rangeOfCharacterFromSet:charSet];

while (range.length != 0 && NSMaxRange(range) == displayText.length)
{
    [displayText replaceCharactersInRange:range withString:@""];
    range = [displayText.string rangeOfCharacterFromSet:charSet];
}

// Trim trailing whitespace and newlines.
range = [displayText.string rangeOfCharacterFromSet:charSet options:NSBackwardsSearch];
while (range.length != 0 && NSMaxRange(range) == displayText.length)
{
    [displayText replaceCharactersInRange:range withString:EMPTY_STRING];
    range = [displayText.string rangeOfCharacterFromSet:charSet options:NSBackwardsSearch];
}

我得到的输出是

Hellotext
•Text1
•Text2
•Text3

实际输出应该像

Hello text
 • Text1
 • Text2
 • Text3

有人可以帮我解决这个问题吗? 提前谢谢。

2 个答案:

答案 0 :(得分:2)

对于使用仅具有tab字符的字符集,您可以使用:

NSMutableCharacterSet *charSet = [NSMutableCharacterSet whitespaceCharacterSet];
[charSet removeCharactersInString:@" "];

答案 1 :(得分:0)

+whitespaceCharacterSet包含空格和制表符。如果您只想匹配制表符,请创建自定义集:

NSCharacterSet *charSet = [NSCharacterSet characterSetWithCharactersInString:@"\t"];