首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从NSString的第一行删除换行符

从NSString的第一行删除换行符
EN

Stack Overflow用户
提问于 2009-06-17 05:39:11
回答 3查看 24K关注 0票数 16

如何从NSString中删除\n第一个字符?

编辑:只是为了澄清,我想要做的是:如果字符串的第一行包含\n字符,则删除它,否则什么也不做。

例如:如果字符串是这样的:

代码语言:javascript
复制
@"\nhello, this is the first line\nthis is the second line"

而不是在第一行不包含换行符的字符串:

代码语言:javascript
复制
@"hello, this is the first line\nthis is the second line."

我希望这能让事情变得更清楚。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-06-17 05:51:49

这应该能起到作用:

代码语言:javascript
复制
NSString * ReplaceFirstNewLine(NSString * original)
{
    NSMutableString * newString = [NSMutableString stringWithString:original];

    NSRange foundRange = [original rangeOfString:@"\n"];
    if (foundRange.location != NSNotFound)
    {
        [newString replaceCharactersInRange:foundRange
                                 withString:@""];
    }

    return [[newString retain] autorelease];
}
票数 11
EN

Stack Overflow用户

发布于 2009-06-17 05:51:22

代码语言:javascript
复制
[string stringByTrimmingCharactersInSet:[NSCharacterSet newlineCharacterSet]]

我将从任何类型的换行符中裁剪字符串,如果这是你想要的。

代码语言:javascript
复制
[string stringByReplacingOccurrencesOfString:@"\n" withString:@"" options:0 range:NSMakeRange(0, 1)]

如果换行符是字符串中的第一个字符,则会完全按照您的要求进行操作并删除换行符

票数 40
EN

Stack Overflow用户

发布于 2009-06-17 22:52:08

您可以只使用原始字符串并使用以下代码来简化代码,而不是创建NSMutableString并使用一些保留/释放调用:(需要10.5+)

代码语言:javascript
复制
NSRange foundRange = [original rangeOfString:@"\n"];
if (foundRange.location != NSNotFound)
    [original stringByReplacingOccurrencesOfString:@"\n"
                                        withString:@""
                                           options:0 
                                             range:foundRange];

(详细信息请参见-stringByReplacingOccurrencesOfString:withString:options:range:。)

最后一次调用方法调用的结果甚至可以安全地分配回原始的,如果使用,您可以先自动释放那里的内容,这样就不会泄漏内存。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1005281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档