【问题标题】:How to put line breaks on strings Objective-C如何在字符串Objective-C上放置换行符
【发布时间】:2014-04-26 01:17:27
【问题描述】:

如果我在 Objective-C 中有一个名为 text 的字符串非常长,例如:

NSString *text = [NSString stringWithFormat:@"%@", _sometext];

如何扫描_sometext 并在字符串中每隔一百个字符(字母)添加一个换行符?

所以如果我有_sometext

那是十一月。虽然时间还不晚,但我的时候天已经黑了 变成了洗衣道。父亲一天结束了, 关掉商店的灯,关上百叶窗;但我会 不要回到他留在楼梯上的灯上的黑暗中 公寓。

我怎样才能让它在之后换行

那是十一月。虽然时间还不晚,但我的时候天已经黑了 变成洗衣通道

之后

。父亲结束了一天的工作,关掉了店里的灯, 关闭百叶窗;但是所以我会

(因为那是 100 个字符)?

但不是在单词中间停止,我可以跳过单词并在前一个单词结束。示例:如果句子以“but so I wo”结尾,并且去掉了“would”这个词,它会停在此处而不是“but so I”。

【问题讨论】:

    标签: ios objective-c string nsstring


    【解决方案1】:

    我能想到的最简单的解决方案是一个两步过程。

    第一步是将原始字符串分解为一个由 100 个字符串组成的数组。

    第二步涉及使用换行符连接该字符串数组。

    NSMutableArray *lines = [NSMutableArray array];
    
    while ([originalString length] > 100) {
        [lines addObject:[originalString substringToIndex:100]];
        originalString = [originalString substringFromIndex:100];
    }
    [lines addObject: originalString];
    
    NSString *reformattedString = [lines componentsJoinedByString:@"\n"];
    

    【讨论】:

    • 这些行 [lines addObject:[_text subStringToIndex:100]];_text = [_text subStringFromIndex:100]; 由于某种原因给我带来了错误
    • no visible @interface for 'NSString' 声明选择器 'subStringFromIndex' 和 'subStringToIndex'
    • 在这两种情况下都尝试substring。将第二个 s 设为小写。
    • 这成功了!你也知道如何让它不被单词中间切断吗?现在,它正好在 100 个字符后拆分
    【解决方案2】:

    您可以编写使用方法rangeOfString:options:range: 的代码 这样做。

    您将为字符串的前 100 个字符创建一个NSRange。然后你会在那个范围内向后搜索一个空格。当您找到一个空格时,您将从字符串的开头添加到输出字符串的空格以及换行符。然后,您将搜索范围设置为空格后字符串的下 100 个字符,然后再次向后搜索空格。重复直到处理完整个字符串。

    有关rangeOfString:options:range: 方法的详细信息,请参阅 NSString 类参考。

    【讨论】:

      猜你喜欢
      • 2012-11-13
      • 1970-01-01
      • 1970-01-01
      • 2011-07-28
      • 2011-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-14
      相关资源
      最近更新 更多