NSScanner使用方法

  • 實(shí)例方法
- (NSString *)string;
- (NSUInteger)scanLocation;
- (void)setScanLocation:(NSUInteger)pos;//<span style="font-family: Arial, Helvetica, sans-serif;">設(shè)置開始掃描的位置</span>
- (void)setCharactersToBeSkipped:(NSCharacterSet *)set;//掃描的時(shí)候需要忽略的值
- (void)setCaseSensitive:(BOOL)flag; //是否區(qū)分大小寫
- (void)setLocale:(id)locale; //大概意思是不同語言環(huán)境解釋字符串的方式不一樣,不懂
- (NSCharacterSet *)charactersToBeSkipped; //掃描時(shí)所有被忽略的值
- (BOOL)caseSensitive;
- (id)locale;

- (BOOL)scanInt:(int *)value;  //是否找到一個(gè)十進(jìn)制 int
- (BOOL)scanInteger:(NSInteger *)value NS_AVAILABLE(10_5, 2_0);  //是否找到一個(gè)十進(jìn)制 NSInteger
- (BOOL)scanHexLongLong:(unsigned long long *)result NS_AVAILABLE(10_5, 2_0);   //是否找到16進(jìn)制的long long類型的數(shù)字
- (BOOL)scanHexFloat:(float *)result NS_AVAILABLE(10_5, 2_0);       // Corresponding to %a or %A formatting. Requires "0x" or "0X" prefix. 
- (BOOL)scanHexDouble:(double *)result NS_AVAILABLE(10_5, 2_0);     // Corresponding to %a or %A formatting. Requires "0x" or "0X" prefix. 
- (BOOL)scanHexInt:(unsigned *)value;       // Optionally prefixed with "0x" or "0X"
- (BOOL)scanLongLong:(long long *)value;
- (BOOL)scanFloat:(float *)value;
- (BOOL)scanDouble:(double *)value;

- (BOOL)scanString:(NSString *)string intoString:(NSString **)value; <span style="font-family: Arial, Helvetica, sans-serif;">//</span><span style="font-family: Arial, Helvetica, sans-serif;">從scan中掃描出set中的數(shù)據(jù)放入value中</span>

- (BOOL)scanCharactersFromSet:(NSCharacterSet *)set intoString:(NSString **)value;<span style="font-family: Arial, Helvetica, sans-serif;">//</span><span style="font-family: Arial, Helvetica, sans-serif;">從scan中掃描出set中的數(shù)據(jù)放入value中</span>
- (BOOL)scanUpToString:(NSString *)string intoString:(NSString **)value;//<span style="font-family: Arial, Helvetica, sans-serif;">從scan中掃描出set之外的數(shù)據(jù)放入value中</span>
- (BOOL)scanUpToCharactersFromSet:(NSCharacterSet *)set intoString:(NSString **)value;//從scan中掃描出set之外的數(shù)據(jù)放入value中
- (BOOL)isAtEnd;//是否掃描達(dá)到終點(diǎn)

- (id)initWithString:(NSString *)string;
+ (id)scannerWithString:(NSString *)string;
+ (id)localizedScannerWithString:(NSString *)string;

  • 判斷是否是int類型
 - (BOOL)isPureInt:(NSString*)string{    
              NSScanner* scanner = [NSScanner scannerWithString:string];    
              int intVal;    
              return [scanner scanInt:&intVal] && [scanner isAtEnd];
}
  • 判斷是否是float類型
 - (BOOL)isPureFloat:(NSString*)string{    
              NSScanner* scanner = [NSScanner scannerWithString:string];    
              float floatVal;    
              return [scanner scanFloat:&floatVal] && [scanner isAtEnd];
}
  • 方法使用
NSString * numStr = @"a1b2c3d4e5f6“;
NSScanner * scanner = [NSScanner scannerWithString:numStr];
NSCharacterSet * numSet = [NSCharacterSet decimalDigitCharacterSet];
while (NO == [scanner isAtEnd]) {
  if ([scanner scanUpToCharacterFromSet:numSet intoString:NULL]) {
      int num;
    if ([scanner scanInt:&num]) {
        NSLog(@"num : %d”,num);
      }
}
}
結(jié)果是: num : 1
        num : 2
        num : 3
        num : 4
        num : 5
        num : 6
  • 讀取下一行
[scanner scanCharactersFromSet:[NSCharacterSet newlineCharacterSet]  intoString:NULL]; 
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,765評論 18 399
  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young閱讀 3,880評論 1 10
  • SwiftDay011.MySwiftimport UIKitprintln("Hello Swift!")var...
    smile麗語閱讀 3,857評論 0 6
  • 從三月份找實(shí)習(xí)到現(xiàn)在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發(fā)崗...
    時(shí)芥藍(lán)閱讀 42,366評論 11 349
  • 我 困了 躺著的是床窩著的是沙發(fā) 可哪里是我的家 父親從中原走出 母親在西北長大 江南的風(fēng)將我撒下 可我跺跺腳下的...
    孤高之泥鰍閱讀 250評論 0 0