ios - 拆分 NSString 并限制响应

标签 ios nsstring

我有一个字符串 Hello-World-Test,我只想用第一个破折号拆分这个字符串。

字符串 1:你好 字符串 2:世界测试

最好的方法是什么?我现在正在做的是使用 componentsSeparatedByString,获取数组中的第一个对象并将其设置为 String 1,然后使用 String 1 的长度作为起始索引执行子字符串。

谢谢!

最佳答案

我在 NSString 上添加了一个类别,以在给定字符串第一次出现时进行拆分。以数组形式返回结果可能不太理想,但除此之外似乎还不错。它只是使用 NSString 方法 rangeOfString:,它接受一个 NSString(B) 并返回一个 NSRange 显示在哪里该字符串(B)位于。

@interface NSString (Split)

- (NSArray *)stringsBySplittingOnString:(NSString *)splitString;

@end

@implementation NSString (Split)

- (NSArray *)stringsBySplittingOnString:(NSString *)splitString
{
    NSRange range = [self rangeOfString:splitString];
    if (range.location == NSNotFound) {
        return nil;
    } else {
        NSLog(@"%li",range.location);
        NSLog(@"%li",range.length);
        NSString *string1 = [self substringToIndex:range.location];
        NSString *string2 = [self substringFromIndex:range.location+range.length];
        NSLog(@"String1 = %@",string1);
        NSLog(@"String2 = %@",string2);
        return @[string1, string2];
    }
}

@end

关于ios - 拆分 NSString 并限制响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14252029/

相关文章:

ios - 如何关闭 Sprite 套件节点纹理的抗锯齿

ios - 尝试 block 无法正常工作

iphone - 如何给 NSString 添加引号?

ios - Flutter ListView 双重弹跳问题

ios - Objective-C 应该在使用后将 Arrays 设置为 nil 吗?

iphone - subview 的导航 Controller 行为?

IOS NSString 替换范围之间的文本

ios - NSString 和 NSMutableString 内存注意事项

objective-c - 如何使用 NSAttributedString 制作下标和上标?

ios - 从 UITableView 部分打开 Safari