【问题标题】:Count all characters between 2 words in NSString计算 NSString 中 2 个单词之间的所有字符
【发布时间】:2014-07-29 11:03:48
【问题描述】:

是否可以计算 NSString 中 2 个单词之间的字符数?这是字符串

NSString *myString = [NSString stringWithFormat:@"This is a test string."];

我想计算单词“This”和单词“string”之间的字符数。

这可能吗

【问题讨论】:

  • 不,抱歉,这不可能……(当然有可能。您尝试过搜索吗?
  • 是的,我当然做到了。我才 14 岁,刚开始使用 Obj-C。对不起,我问你一个问题... -,-"
  • 信不信由你,我从 15 岁开始学习 iOS 开发。“出于某种原因”我不必问这样的问题......
  • 大家,谢谢你的帮助!一切正常:D

标签: ios objective-c cocoa nsstring foundation


【解决方案1】:

你可以这样做:

NSString *myString = [NSString stringWithFormat:@"This is a test string."];

NSInteger charCountBetween = -1;
NSRange thisRange = [myString rangeOfString:@"This"];
NSRange stringRange = [myString rangeOfString:@"string"];
if( thisRange.location != NSNotFound && stringRange.location != NSNotFound )
{
    charCountBetween = fabs(thisRange.location - stringRange.location);
    if( thisRange.location > stringRange.location )
    {
        charCountBetween -= stringRange.length;
    }
    else
    {
        charCountBetween -= thisRange.length;
    }
}

【讨论】:

    【解决方案2】:

    你必须先找到范围并从中获取子字符串

    NSString *myString = [NSString stringWithFormat:@"This is a test string."];
    NSRange range1 = [myString rangeOfString:@"This"];
    NSRange range2 = [myString rangeOfString:@"string"];
    NSRange rangeSubString = NSMakeRange(range1.location + range1.length, range2.location - range1.location - range1.length);
    NSString *subString = [myString substringWithRange:rangeSubString];
    

    那么你就可以统计这个字符串的字符了

    NSUInteger characterCount = [subString length];
    

    【讨论】:

      【解决方案3】:
      NSString *myString = @"This is a test !";
      NSRange match = [myString rangeOfString: @"This"];
      NSRange match1 = [myString rangeOfString: @"test"];
      
      int nbChar = match1.location - match.location;
      

      这是你要找的吗?

      【讨论】:

        【解决方案4】:

        试试这个:

        NSString *string = @"This is a test string";
        NSRange firstRange = [string rangeOfString:@"This"];
        NSRange secondRange = [string rangeOfString:@"string"];
        if (firstRange.location != NSNotFound &&
            secondRange.location != NSNotFound &&
            secondRange.location > firstRange.location) {
            NSLog(@"Characters between: %d", secondRange.location - (firstRange.location + firstRange.length));
        }
        

        【讨论】:

          【解决方案5】:

          你会想要使用NSRange

          NSRange range1 = [myString rangeOfString:@"This"];
          NSRange range2 = [myString rangeOfString:@"string"];
          NSUInteger numberOfChars = range2.location - range1.location; 
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-03-31
            • 1970-01-01
            • 2012-02-13
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多