用换行符替换NSString中的<br>标签

3

我有一个类似这样的NSString

NSString *string = @"textTextTextTextText<br>textTextTextText<br>TextTextText"

我想把这个NSString设置为我的UICell的文本,每当在字符串中发现一个
标签时就换行。我该怎么做?

我已经尝试了以下方法,但没有成功:

cell.textLabel.text = [[text componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]] componentsJoinedByString:@"<br>"];

3个回答

13

如何考虑以下方案:

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<Element>,其元素(单个字符)永远无法与"<br>"(4个字符)相等比较。 - Alexander
@Alexander-ReinstateMonica 奇怪的是,我们在8年后读到了同样的答案,几乎在同一时间,我们都认为这根本不可能有任何作用。 - gnasher729
@gnasher729,我来自https://dev59.com/mGfWa4cB1Zd3GeqPipy1#12094103?noredirect=1#comment107365197_12094103,我猜你也是。 - Alexander

2
NSString * result =
  [string stringByReplacingOccurrencesOfString:@"<br>" withString:@"\n"];

0

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接