0

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

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

3 回答 3

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 ...
}
于 2013-07-08T07:17:20.063 回答
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。

于 2013-07-08T07:19:50.447 回答
-1

你知道你会用哪个词作为你的锚来分裂吗???

假设你这样做,并说它的“AND”。

做这个。

  1. 获取主字符串。
  2. 创建临时字符串为:tempString = [mainString lowercaseString];
  3. 然后找到你的锚范围:range = [tempString rangeOfSubstring:anchor];
  4. 现在你有你的锚的范围。使用此范围从主字符串中提取子字符串。这个怎么做。想一想,玩得开心:) :)
于 2013-07-08T07:18:09.077 回答