gpt4 book ai didi

objective-c - 通过将另一个字符串重复给定次数来创建 NSString

转载 作者:IT老高 更新时间:2023-10-28 11:30:50 25 4
gpt4 key购买 nike

这应该很容易,但我很难找到最简单的解决方案。

我需要一个 NSString,它等于另一个与自身连接给定次数的字符串。

为了更好的解释,请考虑以下 python 示例:

>> original = "abc"
"abc"
>> times = 2
2
>> result = original * times
"abcabc"

有什么提示吗?


编辑:

我打算发布一个类似于 Mike McMaster's answer 的解决方案,在从 OmniFrameworks 中查看了这个实现之后:

// returns a string consisting of 'aLenght' spaces
+ (NSString *)spacesOfLength:(unsigned int)aLength;
{
static NSMutableString *spaces = nil;
static NSLock *spacesLock;
static unsigned int spacesLength;

if (!spaces) {
spaces = [@" " mutableCopy];
spacesLength = [spaces length];
spacesLock = [[NSLock alloc] init];
}
if (spacesLength < aLength) {
[spacesLock lock];
while (spacesLength < aLength) {
[spaces appendString:spaces];
spacesLength += spacesLength;
}
[spacesLock unlock];
}
return [spaces substringToIndex:aLength];
}

从文件中复制的代码:

Frameworks/OmniFoundation/OpenStepExtensions.subproj/NSString-OFExtensions.m

关于 Omni Frameworks 的 OpenExtensions 框架由 The Omni Group .

最佳答案

有一个方法叫stringByPaddingToLength:withString:startingAtIndex::

[@"" stringByPaddingToLength:100 withString: @"abc" startingAtIndex:0]

请注意,如果您想要 3 个 abc,则使用 9 (3 * [@"abc"length]) 或创建如下类别:

@interface NSString (Repeat)

- (NSString *)repeatTimes:(NSUInteger)times;

@end

@implementation NSString (Repeat)

- (NSString *)repeatTimes:(NSUInteger)times {
return [@"" stringByPaddingToLength:times * [self length] withString:self startingAtIndex:0];
}

@end

关于objective-c - 通过将另一个字符串重复给定次数来创建 NSString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/260945/

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