gpt4 book ai didi

objective-c - 替换 NSString 中每两次出现的引号(iOS NSString)

转载 作者:可可西里 更新时间:2023-11-01 05:41:58 25 4
gpt4 key购买 nike

我需要将已经存在的标准上部双引号“”(在我从数据库中获取的文本中)替换为用于 UIWebView 的德语文本的特定引号。引号前的第一个双引号字符(每个偶数索引)需要替换为 „ 的 HTML 等价物,即 和引号后的第二个双引号 (每个奇数索引)与“这是 。引号可以在文本中的任何位置,所以我不能依赖任何固定位置。

所以基本上我有一个像这样的 NSString:

只是“一些”文本和一些“更多”文本

或者在 Objective-C 中:

NSString *str = @"just \"some\" text with some \"more\" text";

我知道 NSString 中的 stringByReplacingOccurrencesOfString 方法,但当然这只会用底部双引号替换所有双引号。

NSString *newStr = [str stringByReplacingOccurrencesOfString:@"\"" withString:@"„"];

我找不到一种方法来仅替换每秒或每第 n 次出现,有人有提示/想法我可以如何实现吗?

非常感谢

最佳答案

NSScanner 提供另一种选择...

NSScanner *scanner = [NSScanner scannerWithString:englishString];
NSMutableString *germanString = [NSMutableString string];
BOOL foundQuote = YES;
int quoteIndex = 0;

while (foundQuote) {
NSString *nextPart = @"";
[scanner scanUpToString:@"\"" intoString:&nextPart];
if (nextPart != nil) {
[germanString appendString:nextPart];
}
foundQuote = [scanner scanString:@"\"" intoString:nil];
if (foundQuote) {
[germanString appendString:((quoteIndex % 2) ? @"“" : @"„")];
quoteIndex++;
}
}

NSLog(@"The German version is: %@", germanString);

关于objective-c - 替换 NSString 中每两次出现的引号(iOS NSString),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12088081/

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