带\ n或换行符的NSString


100

有谁知道如何在NSString中使用换行符?我需要做这样的事情-

[NSString stringWithFormat:@"%@,\n%@", mystring1,mystring2];

11
您真的尝试过吗?因为如果有,您将得到答案。
Dave DeLong 2010年

不,它没有用。我看到\ n附加在字符串上,但是在呈现时,它在同一行上。
戴夫

4
请确保您显示的此NSString类型消息未使用HTML支持。如果使用HTML支持,则不会处理\ n。希望我会有所帮助。谢谢,阿比
阿卜杜勒·雅辛

Answers:


177

当为NSObject的子类重载-description时,我遇到了同样的问题。在这种情况下,我可以使用回车符(\ r)而不是换行符(\ n)来创建换行符。

[NSString stringWithFormat:@"%@\r%@", mystring1,mystring2];


1
完善!只要注意,您必须第一个%后的联合国需要逗号@
山姆·斯宾塞

1
@OMGPOP,请注意,对于iOS开发,您还需要在下面查看我的答案。
安迪

Perfect为我工作,非常感谢分享。
swiftBoy

32

如果您的字符串在UIView(例如UILabel)中,则还需要将行数设置为0

myView.numberOfLines=0;

26

我发现当我从.plist文件中读取字符串时,出现的"\n"解析为"\\n"。对我来说,解决办法是更换的出现"\\n""\n"。例如,给定一个从文件读取的NSStringnamed 实例,我必须调用...myString.plist

myString = [myString stringByReplacingOccurrencesOfString:@"\\n" withString:@"\n"];

...在将其分配给我的UILabel实例之前...

myLabel.text = myString;

2
这是我的确切情况,阿迪尔。感谢您的回答!
iOS4Life

12
NSString *str1 = @"Share Role Play Photo via Facebook, or Twitter for free coins per photo.";
NSString *str2 = @"Like Role Play on facebook for 50 free coins.";
NSString *str3 = @"Check out 'What's Hot' on other ways to receive free coins";


NSString *msg = [NSString stringWithFormat:@"%@\n%@\n%@", str1, str2, str3];

8

试试这个(stringWithFormat必须以小写开头)

 [NSString stringWithFormat:@"%@\n%@",string1,string2];

2

\ n \ r似乎为我工作。

我正在将Xcode 4.6与IOS 6.0用作目标。在iPhone 4S上测试。自己尝试。

冯超


1
这不是答案。请在评论中写下这些内容。
Shivaay

2

NSString的换行符为\ r

正确的使用方式 [NSString StringWithFormat:@"%@\r%@",string1,string2];

\ r ---->回车


“ StringWithFormat”无效;它应该是“ stringWithFormat”(必须以小写字母“ s”
开头

0

\n是换行的首选方法。 \r也会工作。 \n\r或过大\r\n,可能会在以后引起您的问题。可可,具有特定的段落,并用于特定用途换行符NSParagraphSeparatorCharacterNSLineSeparatorCharacter是上述所有内容的来源。


0

在Swift 3中,它要简单得多

let stringA = "Terms and Conditions"
let stringB = "Please read the instructions"

yourlabel.text =  "\(stringA)\n\(stringB)"

或者如果您正在使用textView

yourtextView.text =  "\(stringA)\n\(stringB)"

Post是为Objective-C专门标记的。
dylan '18

0

如果\ n或\ r无法正常工作,并且您正在使用uiwebview并尝试使用<br>标签插入新行来加载html。不要只在NSString stringWithFormat中使用<br>标签。

而是通过追加使用相同的内容。即通过使用stringByAppendingString

 yourNSString = [yourNSString stringByAppendingString:@"<br>"];
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.