我想在NSString A
前添加NSString B
。是否有内置方法附加到NSString的开头而不是NSString的结尾?
我知道我可以使用stringWithFormat
,但是使用stringWithFormat
和stringByAppendingString
将文本添加到NSString的末尾有什么区别?
答案 0 :(得分:35)
如果你可以追加到字符串的末尾,你可以添加到字符串的开头。
<强>追加强>
NSString* a = @"A";
NSString* b = @"B";
NSString* result = [a stringByAppendingString:b]; // Prints "AB"
<强>前置强>
NSString* a = @"A";
NSString* b = @"B";
NSString* result = [b stringByAppendingString:a]; // Prints "BA"
答案 1 :(得分:9)
单线解决方案:
myString = [@"pretext" stringByAppendingString:myString];
答案 2 :(得分:4)
您也可以使用stringWithFormat:
NSString *A = @"ThisIsStringA";
NSString *B = @"ThisIsStringB";
B = [NSString stringWithFormat:@"%@%@",A,B];
stringByAppendingString是NSString的实例方法, stringWithFormat是类NSString的类方法。
答案 3 :(得分:2)
可能值得指出的是,没有“将一个字符串附加到另一个字符串上”。 NSString是不可变的。
在每种情况下,您都是“创建一个由一个字符串组成的新字符串”。
将新创建的字符串放回同一个变量中并不重要。
你永远不会“将文字添加到字符串的末尾”。
答案 4 :(得分:0)
我在Swift中解决了这个问题:
extension String {
// Add prefix only, if there is not such prefix into a string
mutating func addPrefixIfNeeded(_ prefixString: String?) {
guard let stringValue = prefixString, !self.hasPrefix(stringValue) else {
return
}
self = stringValue + self
}
// Add force full prefix, whether there is already such prefix into a string
mutating func addPrefix(_ prefixString: String?) {
guard let stringValue = prefixString else {
return
}
self = stringValue + self
}
}