Append to beginning of NSString method
我想在nsstring
我知道我可以使用
如果可以追加到字符串的结尾,则可以预先追加到字符串的开头。
追加
1 2 3 | NSString* a = @"A"; NSString* b = @"B"; NSString* result = [a stringByAppendingString:b]; // Prints"AB" |
预置
1 2 3 | NSString* a = @"A"; NSString* b = @"B"; NSString* result = [b stringByAppendingString:a]; // Prints"BA" |
单线解决方案:
1 | myString = [@"pretext" stringByAppendingString:myString]; |
也可以使用StringWithFormat:
1 2 3 | NSString *A = @"ThisIsStringA"; NSString *B = @"ThisIsStringB"; B = [NSString stringWithFormat:@"%@%@",A,B]; |
StringByAppendingString是nsString的一个实例方法,StringWithFormat是nsString类的一个类方法。
可能值得指出的是,没有"将一个字符串附加到另一个字符串"这样的事情。nsstring是不可变的。
在每种情况下,您都在"创建一个由一个字符串接一个字符串组成的新字符串"。
把新创建的字符串放回同一个变量并不重要。
您永远不会"在字符串末尾添加文本"。
这里我有一个快速的解决方案:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 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 } } |