基于不区分大小写的子串拆分字符串

时间:2013-07-08 07:04:34

标签: iphone ios xcode ipad

我需要根据单词拆分字符串。该单词可以是任何Case,我需要保留子字符串数组的大小写。例如:

  1. 字符串可能是
    a)“我的名字是XYZ,我住在ABC。”或
    b)“我的名字是XYZ,我住在ABC。”或
    c)“我的名字是XYZ,我住在ABC。”
  2. 现在,分离字符串可以是“和”或“和”或“和”。
  3. 在我的代码中,我不知道在a),b)和c)中使用了哪个字符串。
  4. 问题是如何将字符串分隔为“我的名字是XYZ”和“我住在ABC”。分别

3 个答案:

答案 0 :(得分:6)

您可以使用

NSRange range = [string rangeOfString:@" and " options: NSCaseInsensitiveSearch];

以不区分大小写的方式查找分隔字符串的位置,然后 用

提取第一个和最后一个部分
if (range.location != NSNotFound) {
    NSString *first = [string substringToIndex:range.location];
    NSString *last = [string substringFromIndex:(range.location + range.length)];
} else {
    // separator not found ...
}

答案 1 :(得分:0)

尝试使用此

    NSString *string1 = @"My name is XYZ and I live in ABC.";
    NSRange range = [string1 rangeOfString:@"And" options:NSCaseInsensitiveSearch];

    if (range.location != NSNotFound)
    {
        NSString *firstStr = [string1 substringToIndex:range.location];
        NSString *secondStr = [string1 substringFromIndex:range.location+range.length];


        NSLog(@"firstString  : %@",firstStr);
        NSLog(@"SecondStr :  %@",secondStr);
    }

输出

firstString:我的名字是XYZ

SecondString:我住在ABC。

答案 2 :(得分:-1)

你知道你将用哪个词作为你的分裂???

假设你这样做,并说出“和”。

这样做。

  1. 获取主要字符串。
  2. 将临时字符串创建为:tempString = [mainString lowercaseString];
  3. 然后找到你的锚范围:range = [tempString rangeOfSubstring:anchor];
  4. 现在你有你的锚范围了。使用此范围从主字符串中提取子字符串。这该怎么做。想一想,玩得开心:):)