gpt4 book ai didi

iphone - NSScanner 在简单删除空格时的奇怪行为

转载 作者:太空狗 更新时间:2023-10-30 03:23:34 25 4
gpt4 key购买 nike

我正在尝试用一个空格替换某些文本中的所有多个空格。这应该是一项非常简单的任务,但是由于某种原因,它返回的结果与预期的不同。我已经阅读了 NSScanner 上的文档,它似乎无法正常工作!

NSScanner *scanner = [[NSScanner alloc] initWithString:@"This    is   a test of NSScanner   !"];
NSMutableString *result = [[NSMutableString alloc] init];
NSString *temp;
NSCharacterSet *whitespace = [NSCharacterSet whitespaceCharacterSet];
while (![scanner isAtEnd]) {

// Scan upto and stop before any whitespace
[scanner scanUpToCharactersFromSet:whitespace intoString:&temp];

// Add all non whotespace characters to string
[result appendString:temp];

// Scan past all whitespace and replace with a single space
if ([scanner scanCharactersFromSet:whitespace intoString:NULL]) {
[result appendString:@" "];
}

}

但出于某种原因,结果是 @"ThisatestofNSScanner!" 而不是 @"This is a test of NSScanner !"

如果您通读了评论以及每一行应该实现的目标,这似乎很简单!? scanUpToCharactersFromSet 应该在遇到空白时停止扫描器。 scanCharactersFromSet 应该让扫描仪越过空白字符直到非空白字符。然后继续循环直到结束。

我缺少或不理解什么?

最佳答案

啊,我想通了!默认情况下,NSScanner 会跳过空格!

事实证明,您只需将 charactersToBeSkipped 设置为 nil:

[scanner setCharactersToBeSkipped:nil];

关于iphone - NSScanner 在简单删除空格时的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2828737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com