怎么区分一个字符串中的英文字母和数字

来源:互联网 发布:it工作职责 编辑:程序博客网 时间:2024/05/02 01:49

-(NSNumber *)chineseOrEnglishOfLength: (NSString *)str

{

   NSNumber* length=0;

    NSRegularExpression * letterRegular=[NSRegularExpressionregularExpressionWithPattern:@"[A-Za-z]"options:NSRegularExpressionCaseInsensitiveerror:nil];

//英文字母的个数

    int letterCount=[letterRegularnumberOfMatchesInString:str options:NSMatchingReportProgressrange:NSMakeRange(0, str.length)];

    NSRegularExpression *digitalRegular=[NSRegularExpressionregularExpressionWithPattern:@"[0-9]"options:NSRegularExpressionCaseInsensitiveerror:nil];

//数字的个数

    int digitalCount=[digitalRegularnumberOfMatchesInString:str options:NSMatchingProgressrange:NSMakeRange(0, str.length)];

//自己定制的返回长度

    length=[NSNumbernumberWithInt:(letterCount+digitalCount +1)/2+(str.length-letterCount-digitalCount)];

   return length;

}

把需要区分的字符串传进来,返回的length是该字符串所占的长度,(英文字母和数字都是占0.5个字节 汉字一个字节);
原创粉丝点击