8

我想在 NSStringA前面附加 NSString B。是否有内置方法可以附加到 NSString 的开头而不是 NSString 的结尾?

我知道我可以使用,但是使用和将文本添加到 NSString 的末尾有stringWithFormat什么区别?stringWithFormatstringByAppendingString

4

5 回答 5

39

如果可以追加到字符串的末尾,则可以追加到字符串的开头。

附加

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"
于 2013-02-02T21:14:33.830 回答
9

单线解决方案:

myString = [@"pretext" stringByAppendingString:myString];
于 2014-07-23T19:47:43.093 回答
4

您也可以使用 stringWithFormat :

NSString *A = @"ThisIsStringA";
NSString *B = @"ThisIsStringB";
B = [NSString stringWithFormat:@"%@%@",A,B];

stringByAppendingString 是 NSString 的实例方法,stringWithFormat 是 NSString 类的类方法。

于 2013-02-02T21:32:49.693 回答
2

可能值得指出的是,没有“将一个字符串附加到另一个字符串”这样的事情。NSString 是不可变的。

在每种情况下,您都在“创建一个由一个字符串跟随另一个字符串组成的新字符串”。

将新创建的字符串放回同一个变量并不重要。

您永远不会“将文本添加到字符串的末尾”。

于 2013-02-02T22:55:28.887 回答
-1

在这里,我在 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
    }
} 
于 2018-01-12T11:16:46.867 回答