我有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
有人可以帮我解决这个问题吗? 提前谢谢。
答案 0 :(得分:2)
对于使用仅具有tab
字符的字符集,您可以使用:
NSMutableCharacterSet *charSet = [NSMutableCharacterSet whitespaceCharacterSet];
[charSet removeCharactersInString:@" "];
答案 1 :(得分:0)
+whitespaceCharacterSet
包含空格和制表符。如果您只想匹配制表符,请创建自定义集:
NSCharacterSet *charSet = [NSCharacterSet characterSetWithCharactersInString:@"\t"];