IOS-OC-字符串练习

#import 
#import "String.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        /*1. 输入一段字符串,已知字符串只由字母和空格构成,统计其中的单词个数 (10分)
         比如:传入 @"welcom to qianfeng"  返回:3
         */
        String *st = [[String alloc] init];
        
        char ch[100];
        NSLog(@"请输入English:");
        gets(ch);
        
        NSString *string = [NSString stringWithFormat:@"%s",ch];
        NSInteger i = [st countOfWordInString:string];
        
        NSLog(@"其中单词的个数是:%ld",i);
        
        /*
         2. 取得文件的扩展名 (10分)
         比如 传入字符串 @"/home/qianfeng/oc.txt" 返回:@"txt"
         传入字符串 @"/usr/qianfeng/ios.m" 返回:@"m"
         */
        
        char chOne[100];
        NSLog(@"请输入文件路径:");
        gets(chOne);
        
        NSString *stringOne = [NSString stringWithFormat:@"%s",chOne];
        NSString *stringTwo = [st extensionOfFilePath:stringOne];
        
        NSLog(@"%@",stringTwo);
        /*
         3.将一个字符串数组中的元素组合成一个合法路径(10分)
         已知一个数组存放的是目录名字,要求组合成一个合法路径
         比如:数组中存放的是 home qianfeng iOS
         返回  /home/qiangfeng/iOS
         */
        
        NSArray *array = @[@"home",@"qianfeng",@"ios"];
        NSString *stringThree = [st joinPathOfComponents:array];
        
        NSLog(@"%@",stringThree);
        
        
        /*
         4.用NSLog打印九九乘法表(10分)
         */
        
        [st print99Table];
        
    }
    return 0;
}
#import 

@interface String : NSObject
//1.
- (NSUInteger)countOfWordInString:(NSString *)str ;
//2.
- (NSString *)extensionOfFilePath:(NSString *)path;
//3.
- (NSString *)joinPathOfComponents:(NSArray *)comp;
//4.
- (void)print99Table;
@end
#import "String.h"

@implementation String
//1.
- (NSUInteger)countOfWordInString:(NSString *)str {
    
    NSArray *array = [str componentsSeparatedByString:@" "];
    return array.count;
    
    
}
//2.
- (NSString *)extensionOfFilePath:(NSString *)path{
    
    NSRange rang = [path rangeOfString:@"."];
    NSString *string = [path substringFromIndex:rang.location+1];
    return string;
    
}
//3.
- (NSString *)joinPathOfComponents:(NSArray *)comp{
    NSString *string = [comp componentsJoinedByString:@"\\"];
    return string;
}

//4.
- (void)print99Table{
    NSMutableString *Mstr = [[NSMutableString alloc] init];
    for (int i = 1; i < 10; i ++) {
        for (int j=1; j <= i; j ++) {
            [Mstr appendFormat:@"%d * %d = %d  ",j,i,i*j];
        }
        [Mstr appendFormat:@"\n"];
    }
    NSLog(@"\n%@",Mstr);
}
@end
#import 
#import "String.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {
   
        /*
         5.将指定字符串逆序(10分)
         比如:传入字符串@"iphone"  返回:@"enohpi"
         传入字符串@"beautiful" 返回:@"lufituaeb"
         */
        
        String *string = [[String alloc] init];
        NSString *sOne = [string reverseString:@"123456"];
        NSLog(@"%@",sOne);
        
        /*6.
         // 根据子数组中的内容删除原数组的相应的元素 (10分)
         //已知数组中存放的都是字符串
         比如:可变数组中存放的是:
         @"shenzhen" @"iOS" @"beijing" @"OC" @"UI"  @"shanghai"
         子数组中存放的是:@"shenzhen" @"UI"
         可变数组根据子数组中的内容 删除相应的元素
         结果可变数组内容变为 @"iOS" @"beijing" @"OC"  @"shanghai"
         */
        NSMutableArray *Marray = [[NSMutableArray alloc]initWithObjects:@"shenzhen", @"iOS", @"beijing", @"OC", @"UI",  @"shanghai", nil];
        
        NSArray *array = [[NSArray alloc]initWithObjects:@"shenzhen",@"UI", nil];
        
        [string handleArray:Marray deleteSubArray:array];
        
        
        /*
         7.判断是否是一个合法的手机号 (10分)
         要求:手机号以1开头总共有11位 并且手机号中不能有除了数字以外的其他字符
         比如: 13812345678 是手机号
         188a1234567 不是手机号
         01381234567 不是手机号
         188123456789 不是手机号
         18912345    不是手机号
         */
        
        NSString *sTow = [NSString stringWithFormat:@"a5832566127"];
        BOOL result = [string isPhoneNumberOfString:sTow];
        if (result) {
            NSLog(@"是手机号");
        }else
            NSLog(@"不是手机号");
        
        /*
         8. 把字符串中的字母大小写反转(10分)
         
         //将s中每个字母大写变成小写,小写变成大写,其他字符不动。返回值是修改后的字符串
         
         */
        NSString *sThree = [NSString stringWithFormat:@"SLJsdj"];
        
        NSString *sFour = [string reversalUpperAndLowerForString:sThree];
        NSLog(@"%@",sFour);
        
    }
    return 0;
}
#import 

@interface String : NSObject
//5.
- (NSString *)reverseString:(NSString *)str;
//6.
- (void) handleArray:(NSMutableArray *)arr deleteSubArray:(NSArray *)subArr;
//7.
- (BOOL)isPhoneNumberOfString:(NSString *)phoneString;
//8.
- (NSString *)reversalUpperAndLowerForString:(NSString *)s;
@end
#import "String.h"

@implementation String
//5.
- (NSString *)reverseString:(NSString *)str{
    
    NSMutableString *Mstring = [[NSMutableString alloc] init];
    for (int i = 0; i < str.length; i ++) {
        
        
        unichar c = [str characterAtIndex:i];
        NSString *s = [NSString stringWithFormat:@"%c",c];
        [Mstring insertString:s atIndex:0];
        
    }
    return Mstring;
}
//6.
- (void) handleArray:(NSMutableArray *)arr deleteSubArray:(NSArray *)subArr{
    NSMutableSet *mset = [NSMutableSet setWithArray:arr];
    NSSet *set = [NSSet setWithArray:subArr];
    [mset minusSet:set];
    NSArray *array = [mset allObjects];
    NSLog(@"%@",array);
    
}


//7.
- (BOOL)isPhoneNumberOfString:(NSString *)phoneString{
    if (phoneString.length == 11) {
        for (int i = 0; i< phoneString.length; i ++) {
            unichar c = [phoneString characterAtIndex:i];
                if (c > '9'|| c < '0') {
                    return NO;
            }
        }
        return YES;
    }else
        return NO;
}
//8.
- (NSString *)reversalUpperAndLowerForString:(NSString *)s{
    NSMutableString *Mstring = [[NSMutableString alloc] init];
    
    for (int i = 0; i < s.length; i ++) {
        unichar c = [s characterAtIndex:i];
        if (c >= 97) {
            c = c - 32;
        }else
            c = c + 32;
        
        NSString *string = [NSString stringWithFormat:@"%c",c];
        [Mstring appendString:string];
        
    }
    return Mstring;
    
}

@end
#import 
#import "String.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        /*
         10. 查找子串出现次数(20分)
         
         // 返回字符串s中出现子串substring的次数
         */
        String *str = [[String alloc] init];
        char ch[100];
        scanf("%s",ch);
        NSString *s1 = [NSString stringWithFormat:@"%s",ch];
        
        //String *str = [[String alloc] init];
        char ch1[100];
        scanf("%s",ch1);
        NSString *sub1 = [NSString stringWithFormat:@"%s",ch1];
        //        NSString *s = @"iamasupermaniamasuperman";
        //        NSString *substring = @"ia";
        
        NSInteger i = [str countOfSubstring:sub1 inString:s1];
        NSLog(@"%ld",i);
        
        /*
         11.
         现有一个数组NSMutableArray,
         数组有若干个NSString的元素,进行选择法排序(20分)
         
         // 参数arr 表示数组对象地址
         //参数 asc=YES 表示升序 asc=NO 表示降序
         
         */
        NSMutableArray *MArray = [[NSMutableArray alloc] initWithObjects:@"2",@"5",@"8",@"6",@"7", nil];
        
        [str selectionSort:MArray andAsc:NO];
        /*
         12.传入一个数组,其元素类型与个数皆未知,返回新数组,由原数组的元素正序反序拼接而成。
         
         //参数arr 表示原数组地址
         
         //返回值是新数组的地址
         
         传入:@[@"one", @"Two", @"Three"]
         
         返回:@[@"one", @"Two", @"Three", @"Three", @"Two", @"one"]
         */
        
        NSArray *array = @[@"one", @"Two", @"Three"];
        NSArray *arrayOne =  [String symmetryArray:array];
        NSLog(@"%@",arrayOne);
        
        /*13
         已知一个字符串对象中,英语单词用各种非字母字符分割,统计单词的个数。
         如,传入:"Yes, she*is%my@love.";
         返回:5(15分)。
         */
        
        NSString *string = @"Yes, she*is%my@love.";
        NSInteger iOne = [String countWord:string];
        NSLog(@"单词个数是:%ld",iOne);
        
        
        /*
         14
         已知千锋邮箱的用户名只能由数字字母下滑线组成,域名为@1000phone.com,判断一个字符串是否是千锋邮箱,是,返回1,不是返回0。(15分)
         [email protected][email protected]   不是
         [email protected]   不是
         */
        
        NSString *stringOne = @"[email protected]";
        BOOL result = [String is1000PhoneMail:stringOne];
        if (result) {
            NSLog(@"是前锋的邮箱");
        }else
            NSLog(@"不是前锋的邮箱");
    }
    return 0;
}
#import 

@interface String : NSObject
//10.
- (NSInteger)countOfSubstring:(NSString *)substring inString:(NSString *)s;
//11.
- (void)selectionSort:(NSMutableArray *)arr andAsc:(BOOL)asc;
//12.
+(NSArray *)symmetryArray:(NSArray *)arr;
//13.
+(NSInteger)countWord:(NSString *)string;
//14.
+(BOOL)is1000PhoneMail:(NSString *)str;
@end
#import "String.h"

@implementation String
//10
- (NSInteger)countOfSubstring:(NSString *)substring inString:(NSString *)s{
    int n = 0;
    
    NSMutableString *MString = [NSMutableString stringWithString:s];
    while (1) {
        NSRange rang = [MString rangeOfString:substring];
        if (!rang.length)
            return n;
        [MString deleteCharactersInRange:rang];
        n++;
    }
}

//11
- (void)selectionSort:(NSMutableArray *)arr andAsc:(BOOL)asc{
    if (asc) {
        for (int i = 0 ; i < arr.count ; i ++) {
            for (int j = i; j < arr.count; j++) {
                if (arr[i] > arr[j]) {
                    [arr exchangeObjectAtIndex:i withObjectAtIndex:j];
                }
            }
        }
        NSLog(@"%@",arr);
    }
    
    else
    {
        for (int i = 0 ; i < arr.count ; i ++) {
            for (int j = i; j < arr.count; j++) {
                if (arr[i] < arr[j]) {
                    [arr exchangeObjectAtIndex:i withObjectAtIndex:j];
                }
            }
        }
        NSLog(@"%@",arr);
    }
}

//12
+(NSArray *)symmetryArray:(NSArray *)arr{
    NSMutableArray *MArray = [[NSMutableArray alloc] init];
    
    NSEnumerator *enumArray = [arr objectEnumerator];
    id ch;
    while (ch = [enumArray nextObject]) {
        
        [MArray addObject:ch];
        
    }
    NSEnumerator *enumReverse = [arr reverseObjectEnumerator];
    id ch1;
    while (ch1 = [enumReverse nextObject]) {
        
        [MArray addObject:ch1];
        
        
    }
    return MArray;
}
//13
+(NSInteger)countWord:(NSString *)string{
    NSInteger count = 0;
    for (int i = 0; i < string.length ; i ++) {
        unichar c = [string characterAtIndex:i];
        if ((c > 'a' && c < 'z')||( c > 'A' && c < 'Z')) {
            for (i = i; ; i ++) {
                c = [string characterAtIndex:i];
                if(!((c > 'a' && c < 'z')||( c > 'A' && c < 'Z')))
                    break;
            }
            count ++;
        }
    }
    return count;
}
//14
+(BOOL)is1000PhoneMail:(NSString *)str{
    
    NSRange rangOne = [str rangeOfString:@"@1000phone.com"];
    if (rangOne.location == NSNotFound) {
        return NO;
    }else
    {
        NSString *stringOne = [str substringToIndex:rangOne.location];
        for (int i = 0; i < stringOne.length; i ++) {
            unichar c = [stringOne characterAtIndex:i];
            if (!(c == '_'||(c>'a'&&c<'z')||(c>'A'&&c<'Z')||(c>'0'&&c<'9')) ) {
                return NO;
            }
        }
        return YES;
        
    }
}
@end


#import 
#import "Test.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        Test *test = [[Test alloc] init];
      /*  //1.
        NSLog(@"%ld",[test countOfWordInString:@"welcom to qianfeng"]);
        // 2
        NSLog(@"%@",[test extensionOfFilePath:@"/home/qianfeng/oc.txt"]);
        // 3
       NSLog(@"%@",[test joinPathOfComponents:@[@"destop",@"mm",@"tt"]]);
        
        // 7
     NSLog(@"%d",[test isPhoneNumberOfString:@"12345678901"]);
        
        
        // 8
        NSLog(@"%@",[test reversalUpperAndLowerForString:@"lvJIAhAO"]);
        
        // 10
        NSLog(@"%ld",[test countOfSubstring:@"s" inString:@"subtsring"]);
        
        // 11
        NSMutableArray *arrayM = [[NSMutableArray alloc] initWithObjects:@"1",@"6",@"7",@"4", nil];
        [test selectionSort:arrayM andAsc:YES];
        
        //12
        NSLog(@"%@",[Test symmetryArray:@[@"恒大",@"淘宝",@"京东",@"腾讯"]]);
        
        */
        // 13
      NSLog(@"%ld",[Test countWord:@"Yes, she*is%my@love."]);
        
        // 14
    //    [Test is1000PhoneMail:@"[email protected]"];
    }
    return 0;
}
#import 

@interface Test : NSObject
/*1. 输入一段字符串,已知字符串只由字母和空格构成,统计其中的单词个数 (10分)
 比如:传入 @"welcom to qianfeng"  返回:3
 */
- (NSUInteger)countOfWordInString:(NSString *)str ;

/*
 2. 取得文件的扩展名 (10分)
 比如 传入字符串 @"/home/qianfeng/oc.txt" 返回:@"txt"
 传入字符串 @"/usr/qianfeng/ios.m" 返回:@"m"
 */
- (NSString *)extensionOfFilePath:(NSString *)path;

/*
 3.将一个字符串数组中的元素组合成一个合法路径(10分)
 已知一个数组存放的是目录名字,要求组合成一个合法路径
 比如:数组中存放的是 home qianfeng iOS
 返回  /home/qiangfeng/iOS
 */
- (NSString *)joinPathOfComponents:(NSArray *)comp;

/*
 4.用NSLog打印九九乘法表(10分)
 */
- (void)print99Table;

/*
 5.将指定字符串逆序(10分)
 比如:传入字符串@"iphone"  返回:@"enohpi"
 传入字符串@"beautiful" 返回:@"lufituaeb"
 */
- (NSString *)reverseString:(NSString *)str;

/*6.
 // 根据子数组中的内容删除原数组的相应的元素 (10分)
 //已知数组中存放的都是字符串
 比如:可变数组中存放的是:
 @"shenzhen" @"iOS" @"beijing" @"OC" @"UI"  @"shanghai"
 子数组中存放的是:@"shenzhen" @"UI"
 可变数组根据子数组中的内容 删除相应的元素
 结果可变数组内容变为 @"iOS" @"beijing" @"OC"  @"shanghai"
 */
- (void)handleArray:(NSMutableArray *)arr deleteSubArray:(NSArray *)subArr;

/*
 7.判断是否是一个合法的手机号 (10分)
 要求:手机号以1开头总共有11位 并且手机号中不能有除了数字以外的其他字符
 比如: 13812345678 是手机号
 188a1234567 不是手机号
 01381234567 不是手机号
 188123456789 不是手机号
 18912345    不是手机号
 */

- (BOOL)isPhoneNumberOfString:(NSString *)phoneString;

/*
 8. 把字符串中的字母大小写反转(10分)
 
 //将s中每个字母大写变成小写,小写变成大写,其他字符不动。返回值是修改后的字符串
 
 */
- (NSString *)reversalUpperAndLowerForString:(NSString *)s;


/*
 10. 查找子串出现次数(20分)
 
 // 返回字符串s中出现子串subtsring的次数
 */
- (NSInteger)countOfSubstring:(NSString *)substring inString:(NSString *)s;

/*
 11.
 现有一个数组NSMutableArray,
 数组有若干个NSString的元素,进行选择法排序(20分)
 
 // 参数arr 表示数组对象地址
 //参数 asc=YES 表示升序 asc=NO 表示降序
 
 */

- (void)selectionSort:(NSMutableArray *)arr andAsc:(BOOL)asc;


//12.传入一个数组,其元素类型与个数皆未知,返回新数组,由原数组的元素正序反序拼接而成。

//参数arr 表示原数组地址

//返回值是新数组的地址

//传入:@[@"one", @"Two", @"Three"]
//
//返回:@[@"one", @"Two", @"Three", @"Three", @"Two", @"one"]
//*/
+(NSArray *)symmetryArray:(NSArray *)arr;


/*13
   已知一个字符串对象中,英语单词用各种非字母字符分割,统计单词的个数。
   如,传入:"Yes, she*is%my@love.";
   返回:5(15分)。
   */
+(NSInteger)countWord:(NSString *)string;


/*14
 已知千锋邮箱的用户名只能由数字字母下滑线组成,域名为@1000phone.com,判断一个字符串是否是千锋邮箱,是,返回1,不是返回0。(15分)
 [email protected][email protected]   不是
 [email protected]   不是
 */

+(BOOL)is1000PhoneMail:(NSString *)str;

/*14
 已知千锋邮箱的用户名只能由数字字母下滑线组成,域名为@1000phone.com,判断一个字符串是否是千锋邮箱,是,返回1,不是返回0。(15分)
 [email protected][email protected]   不是
 [email protected]   不是
 */

+(BOOL)is1000PhoneMail:(NSString *)str;

@end
#import "Test.h"

@implementation Test
- (NSUInteger)countOfWordInString:(NSString *)str
{
    NSArray *array = [str componentsSeparatedByString:@" "];
    return [array count];
}

- (NSString *)extensionOfFilePath:(NSString *)path
{
    NSArray *array = [path componentsSeparatedByString:@"."];
    return array[1];
}

- (NSString *)joinPathOfComponents:(NSArray *)comp
{
    NSMutableString *strM = [[NSMutableString alloc] init];
    for (NSString *str in comp) {
        [strM appendFormat:@"/%@",str];
    }
    
    // 父类指针可以指向自类
    NSString *strR = [NSString stringWithString:strM];
    return strR;
//     return strM;
}

- (void)print99Table
{
    for (int i = 1; i < 10; i ++) {
        NSMutableString *result = [[NSMutableString alloc] init];

        for (int j = 1; j <= i; j ++) {
            int s = i * j;
            [result appendFormat:@"%d * %d = %d ",j,i,s];
        }
        NSLog(@"%@",result);
    }
}

- (void)handleArray:(NSMutableArray *)arr deleteSubArray:(NSArray *)subArr
{
    for (NSString *str in subArr) {
        
        for (int i = 0; i < arr.count; i ++) {
            if ([str isEqualToString:arr[i]]) {
                [arr removeObject:arr[i]];
            }
        }
    }
}

- (BOOL)isPhoneNumberOfString:(NSString *)phoneString
{
    if (phoneString.length == 11 && [phoneString characterAtIndex:0] == '1') {// 以1开头,11位的字符串
        for (int i = 0; i < 11; i ++) {
          
            if ([phoneString characterAtIndex:i]< '0' || [phoneString characterAtIndex:i] > '9') {
                return NO;
            }
        }
    }else{
        return NO;
    }
    return YES;
}


- (NSString *)reversalUpperAndLowerForString:(NSString *)s
{
    NSMutableString *strM = [[NSMutableString alloc] init];
    
    for (int i = 0; i < s.length; i ++) {
        
        // 获取单个字符
        unichar c = [s characterAtIndex:i];
        
        // 判断当前字符的大小写并转换
        if (c >= 'a' && c <= 'z') {//小写
            // 小写转大写
            c = c - 32;
        }else if (c >= 'A' && c <= 'Z'){// 大写
           // 大写转小写
            c = c + 32;
        }
        
        // 存储更改完成的字符
        [strM appendFormat:@"%c",c];
    }
    
    return strM;
}


- (NSInteger)countOfSubstring:(NSString *)substring inString:(NSString *)s
{
    NSArray *array = [s componentsSeparatedByString:substring];
    return [array count] - 1;
}


/*
 11.
 现有一个数组NSMutableArray,
 数组有若干个NSString的元素,进行选择法排序(20分)
 
 // 参数arr 表示数组对象地址
 //参数 asc=YES 表示升序 asc=NO 表示降序
 
 */

- (void)selectionSort:(NSMutableArray *)arr andAsc:(BOOL)asc
{
    if (asc) {//升序
        
        for (int i = 0; i < [arr count] - 1; i ++) {
            
            for (int j = i + 1; j < arr.count; j ++) {
                if ([arr[i] compare:arr[j]]> 0) {
                    [arr exchangeObjectAtIndex:i withObjectAtIndex:j];
                }
            }
        }
    }else{ //降序
     
        for (int i = 0; i < [arr count]; i ++) {
            
            for (int j = i + 1; j < arr.count; j ++) {
                if ([arr[i] compare:arr[j]] < 0) {
                    [arr exchangeObjectAtIndex:i withObjectAtIndex:j];
                }
            }
        }
        
    }
    NSLog(@"%@",arr);
}


//12.传入一个数组,其元素类型与个数皆未知,返回新数组,由原数组的元素正序反序拼接而成。

//参数arr 表示原数组地址

//返回值是新数组的地址

//传入:@[@"one", @"Two", @"Three"]
//
//返回:@[@"one", @"Two", @"Three", @"Three", @"Two", @"one"]
//*/
+(NSArray *)symmetryArray:(NSArray *)arr
{
    NSMutableArray *arrayM = [NSMutableArray arrayWithArray:arr];
    
    NSEnumerator *enumerator = [arrayM reverseObjectEnumerator];
    id obj;
    while (obj = [enumerator nextObject]) {
        [arrayM addObject:obj];
    }
    return arrayM;
    
}


/*13
 已知一个字符串对象中,英语单词用各种非字母字符分割,统计单词的个数。
 如,传入:"Yes, she*is%my@love.";
 返回:5(15分)。
 */
+(NSInteger)countWord:(NSString *)string
{
    // 1. 字母去切割
    //用字母去切割,留下了字母符号和空(""); 并放入不可变数组中
    NSArray *array = [string componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm"]];
  //  NSLog(@"%@",array);
    
    // 2.获取除字母之外的符号
    NSMutableString *strM = [[NSMutableString alloc] init];
    for (NSString *str in array) {
        if (![str isEqualToString:@""]) {
            [strM appendString:str];
        }
    }
    
    // 3. 根据符号切割字符串  存储到不可变数组当中
    NSArray *arrayOne = [string componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:strM]];
    
    // 4. 去空和计算单词个数
    NSInteger count = 0;
    for (NSString *obj in arrayOne) {
        if (![obj isEqualToString:@""]) {
            count ++;
        }
    }
    
    return count;
}


/*14
 已知千锋邮箱的用户名只能由数字字母下滑线组成,域名为@1000phone.com,判断一个字符串是否是千锋邮箱,是,返回1,不是返回0。(15分)
 [email protected][email protected]   不是
 [email protected]   不是
 */

+(BOOL)is1000PhoneMail:(NSString *)str
{
    if (![str hasSuffix:@"@1000phone.com"]) {
        return NO;
    }
    NSString *subStr = [str substringToIndex:[str rangeOfString:@"@1000phone.com"].location];
    
    for (int i = 0; i < subStr.length; i ++) {
        
        unichar c = [subStr characterAtIndex:i];
        
        if (!((c <= '9' && c >= '0') || (c >= 'a' && c <= 'z')|| (c <= 'Z' && c >= 'A') || (c == '_'))) {
            return NO;
        }
    }
    return YES;
}
@end

你可能感兴趣的:(IOS-OC-字符串练习)