nsscanner類是乙個類簇的抽象父類,該類簇為乙個從nsstring物件掃瞄值的物件提供了程式介面。
nsscanner物件把nsstring 物件的的字元解釋和轉化成 number和string 型別的值。在建立nsscanner物件的時候為它分配字元(string ),當你從nsscanner物件獲取內容的時候,它會從頭到尾遍歷字串(string)。
在 nsscanner 物件掃瞄字串的時候,你可以通過設定屬性characterstobeskipped
忽略某些字元。在掃瞄字串之前,那些位於忽略字符集
中的字元將會被跳過。預設的忽略字元是空格和回車字元。
可以通過[[scanner string] substringfromindex:[scanner scanlocation]]
獲取未掃瞄的字串。
+ (instancetype)scannerwithstring:(nsstring *)astring
+ (id)localizedscannerwithstring:(nsstring *)astring
- (instancetype)initwithstring:(nsstring *)astring
@property(readonly, copy) nsstring *string
@property nsuinteger scanlocation
@property bool casesensitive
@property(copy) nscharacterset *characterstobeskipped
@property(retain) id locale
- (bool)scancharactersfromset:(nscharacterset *)scanset intostring:(nsstring * _nullable *)strin**alue;
- (bool)scanuptocharactersfromset:(nscharacterset *)stopset intostring:(nsstring * _nullable *)strin**alue;
- (bool)scanstring:(nsstring *)string intostring:(nsstring * _nullable *)strin**alue;
- (bool)scanuptostring:(nsstring *)stopstring intostring:(nsstring * _nullable *)strin**alue;
- (bool)scandecimal:(nsdecimal *)decimalvalue;
- (bool)scandouble:(double *)doublevalue;
- (bool)scanfloat:(float *)floatvalue;
- (bool)scanhexdouble:(double *)result;
- (bool)scanhexfloat:(float *)result;
- (bool)scanhexint:(unsigned int *)intvalue;
- (bool)scanhexlonglong:(unsigned long long *)result;
- (bool)scanint:(int *)intvalue;
- (bool)scaninteger:(nsinteger *)value;
- (bool)scanunsignedlonglong:(unsigned long long *)unsignedlonglon**alue;
@property(getter=isatend, readonly) bool atend;
#import
@inte***ce conditionjudgmentcontroller : nsobject
//輸入框中只能輸入數字和小數點,且小數點只能輸入一位,引數number 可以設定小數的位數,該函式在-(bool)textfield:(uitextfield *)textfield shouldchangecharactersinrange:(nsrange)range replacementstring:(nsstring *)string呼叫;
+(bool)isvalidaboutinputtext:(uitextfield *)textfield shouldchangecharactersinrange:(nsrange)range replacementstring:(nsstring *)string decimalnumber: (nsinteger) number;
@end
import "conditionjudgmentcontroller.h"
@implementation conditionjudgmentcontroller
+(bool)isvalidaboutinputtext:(uitextfield *)textfield shouldchangecharactersinrange:(nsrange)range replacementstring:(nsstring *)string decimalnumber:(nsinteger)numberelse
if ( [textfield.text isequaltostring:@""] && [string isequaltostring:@"."] )
short remain = number; //保留 number位小數
nsuinteger strlen = [tempstr length];
if(pointrange.length > 0 && pointrange.location > 0)
if(strlen > 0 && (strlen - pointrange.location) > remain+1)
}nsrange zerorange = [textfield.text rangeofstring:@"0"];
if(zerorange.length == 1 && zerorange.location == 0)else}}
}nsstring *buffer;
if ( ![scanner scancharactersfromset:numbers intostring:&buffer] && ([string length] != 0) )else
}@end
注意:上面的方法要結合uitextfield的**方法使用
-(bool)textfield:(uitextfield *)textfield shouldchangecharactersinrange:(nsrange)range replacementstring:(nsstring *)string
平時讀者在進行條件判斷時,可能使用正規表示式或者用if語句比較多一點,其實nsscanner類為我們提供了乙個非常好的方式進行判斷。把它們結合起來使用,可以獲得更好的效果。 乙個陌生女人的來信
發信人 aitong amethyst喜歡的顏色 冷靜而不乏熱情和優雅 信區 movie 標 題 white rose 乙個陌生女人的來信 發信站 北大未名站 2005年03月20日02 18 52 星期天 轉信 乙個孩子暗中懷有的不為人察覺的愛 孤獨中的孩子全部的熱情去激起 乙個孩子乙個少女偶然產...
看《乙個陌生女人的來信》
好久都沒有看完一部 的時候還想接著再看第二遍了。可是 乙個陌生女人的來信 我忍不住看了兩遍。熱烈奔放卻牢牢壓在心底的愛情被細膩地貫穿在整個 裡。對白不多,卻恰到好處。更多的是無聲的神態,沉默裡透著最有力的語言。雖然我很喜歡這部 但並不想說 強烈推薦您去看 或者 經典,一定要看 之類的話。因為也許你我...
如何熟悉乙個完全陌生的系統
作為工程師,在職業生涯中不可避免的會遇到以下場景 1.入職新公司或者轉崗到新部門,如何有條不紊地熟悉已有系統?2.支援陌生系統的迭代開發或者維護,如何快速上手?3.所在團隊同事離職或轉崗,需要你接手相關系統,如何盡快進入角色?面對上述場景,梳理一套方 從而有序 高效地應對十分必要。筆者結合自身經驗和...