【问题标题】:Replace <br> in an NSString with a new line将 NSString 中的 <br> 替换为新行
【发布时间】:2012-08-19 02:35:36
【问题描述】:

我有一个像这样的NSString

NSString *string = @"textTextTextTextText&lt;br&gt;textTextTextText&lt;br&gt;TextTextText"

我想将此 NSString 设置为我的 UICell 的文本,并在字符串上找到的每个
标记上都有一个新行。我怎么能这样做?

我试过了,没有成功:

cell.textLabel.text = [[text componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]] componentsJoinedByString:@"&lt;br&gt;"];

【问题讨论】:

    标签: ios nsstring line-breaks


    【解决方案1】:

    怎么样:

    string = [string stringByReplacingOccurrencesOfString: @"<br>" withString: @"\n"]
    

    或者,如果您使用的是 Swift Strings

    var string = "textTextTextTextText<br>textTextTextText<br>TextTextText"
    string = Array(string).reduce("") {$0 + ($1 == "<br>" ? "\n" : $1)}
    

    【讨论】:

    • 我不认为第二段代码可以工作。 Array(string) 将是 Array&lt;Element&gt;,其元素(单个字符)永远不会与“
      ”(4 个字符)进行比较
    • @Alexander-ReinstateMonica 奇怪的是,我们在给出相同答案 8 年后,在完全相同的时间阅读了相同的答案,我们都认为这在地狱中没有机会工作。
    • @gasher729 我来自stackoverflow.com/questions/12093986/…,我怀疑你也是
    【解决方案2】:
    NSString * result =
      [string stringByReplacingOccurrencesOfString:@"<br>" withString:@"\n"];
    

    【讨论】:

      【解决方案3】:

      SWIFT 5: 如果您使用的是 Swift 字符串(您可以将 NSString 转换为字符串):

      var string = "line1<br>line2<br>line3"
      string = string..replacingOccurrences(of: "<br>", with: "\n"))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-21
        • 2012-05-14
        • 2011-08-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多