iOS自带扫描器--NSScanner

来源:互联网 发布:用excel做小型数据库 编辑:程序博客网 时间:2024/04/29 07:56

要从一段文字和数字的字符串中取出电话号码,通过NSScanner能够针对这一情况快速的扫描出电话号码

  1. // iOS自带的扫描器(我认为来截取电话号码等数字时候特别方便,不需要用正则表达式)  
  2.     NSString *bananas = @"he 15279107716_hehehaha ";  
  3.     NSScanner *scanner = [NSScanner scannerWithString:bananas];  
  4.     NSLog(@" string = %@",[scanner string]);  
  5.     NSLog(@" startLocation = %ld",(long)[scanner scanLocation]);  
  6.     // [NSCharacterSet decimalDigitCharacterSet] 代表了十进制数字  
  7.     // scanUpToCharactersFromSet:intoString:方法(如果你不想保留这些字符,可以传递一个nil给第2个参数)  
  8.     [scanner scanUpToCharactersFromSet:[NSCharacterSet decimalDigitCharacterSet] intoString:nil];  
  9.     NSLog(@" firstLocation = %ld",[scanner scanLocation]); // 打印出来为 3  
  10.     NSInteger anInteger;  
  11.     [scanner scanInteger:&anInteger];  
  12.     NSLog(@" figure = %ld",(long)anInteger);   // 打印出来为15279107716  
  13.     NSLog(@" secLocation = %ld",[scanner scanLocation]); // 打印出来为14  
  14.     // 如果想要获取你得到想要的数值之后所有的值,通过下面方法  
  15.     NSString *string;  
  16.     string = [[scanner string] substringFromIndex:([scanner scanLocation])];  
  17.     NSLog(@" string = %@",string); // 打印出来为 _hehehaha  
  18.       
  19.     // setCaseSensitive:方法设置是否忽略大小写,默认是忽略。  
  20.     // 为什么要重新创建NSScanner呢?  
  21.     // 因为在扫描到指定字符串之后,scanner的位置指向了该字符串开始处  
  22.     NSScanner *scanner1 = [NSScanner scannerWithString:bananas];  
  23.     NSString *separatorString = @"_he";  
  24.     NSString *container;  
  25.     // 以separatorString为扫面分割点,并将前面扫描的结果存进container中  
  26.     [scanner1 scanUpToString:separatorString intoString:&container];  
  27.     NSLog(@" container = %@",container);       // 打印的是 container = he 15279107716  

0 0
原创粉丝点击