如何查找 nsstring 中的下一行

问题描述 投票:0回答:4

有什么方法可以找到 nsstring 中的下一行字符。我的意思是第二行字符...

我想在 nsstring 的第二行找到这个单词...请帮帮我...我是 xcode 的新手...

正在使用

NSString *substring = [text substringToIndex:[text rangeOfString:@"            "].location];

我想找出整个文本中的空白区域...我能够在 nsstring 的第一行中找到该空白区域..但是在第二行中也有相同的空白区域..但它无法识别...

ios objective-c xcode nsstring
4个回答
7
投票

您可以按

\n
字符进行拆分。

类似这样的:

NSArray *vals = [yourString componentsSeparatedByString:@"\n"];

然后检查

vals
是否有多个元素。

if ([vals count] > 1) {
    // you do have a "next line"
    NSString *nextLine = [vals objectAtIndex: 1];
    NSLog(nextLine);
}

1
投票
NSArray *lines = [yourNSStringObject componentsSeparatedByString:@"\n"];
NSString *secondline = [lines objectAtIndex:1];

0
投票

rangeOfString 有一个重载方法,您可以为其提供范围。

试试这个:

NSString *substring = [text substringToIndex:[text rangeOfString:@" " options:nil range:NSMakeRange([text rangeOfString:@"\n"], text.length)].location];

0
投票

在问题中,用户交替使用

next
second
,实际上并不相同。

以防万一,如果有人正在寻找

next
行的代码片段,那么这里就是

extension StringProtocol {
    func nextLineRange(at index: Index) -> Range<Index>? {
        let firstLineRange = lineRange(at: index)
        if self.endIndex == firstLineRange.upperBound {
            print("Already on the last line")
            return nil
        }
        let nextChar = self.index(after: firstLineRange.upperBound)
        return lineRange(at: nextChar)
    }
}

这也可用于提取第二行

let secondLineRange = text.nextLineRange(at: text.startIndex)

© www.soinside.com 2019 - 2024. All rights reserved.