NSStringsの最初の文字が数字かどうかを判断する方法を知りたかっただけです。
回答:
答えは№1の20BOOL hasLeadingNumberInString(NSString* s) {
if (s)
return [s length] && isnumber([s characterAtIndex:0]);
else
return NO;
}
イベントでは、多くのNSStringsを処理しています一度(配列をループするなど)で、先頭の数字のような書式設定について各チェックを行いたい場合は、空または存在しない文字列を評価しようとしないようにチェックを含めることをお勧めします。
例:
NSString* s = nil; //Edit: s needs to be initialized, at the very least, to nil.
hasLeadingNumberInString(s); //returns NO
hasLeadingNumberInString(@""); //returns NO
hasLeadingNumberInString(@"0123abc"); //returns YES
回答№2のための8
はい。できるよ:
NSString *s = ...; // a string
unichar c = [s characterAtIndex:0];
if (c >= "0" && c <= "9") {
// you have a number!
}
答え№3のための7
2つの方法が考えられます。使用できます
[string rangeOfCharacterFromSet:[NSCharacterSet decimalDigitCharacterSet]].location == 0
または、あなたが使うことができる
[[NSCharacterSet decimalDigitCharacterSet] characterIsMember:[string characterAtIndex:0]]
答え№4のための5
次の戻り値を確認します。
[myString rangeOfCharacterFromSet:[NSCharacterSet decimalDigitCharacterSet]];
もし location
返される範囲の値は 0
、最初の文字に一致します。
回答№5の4
文字列全体をスキャンする呼び出しを使用するのではなく、最初の文字を引き出してそれが何であるかを確認するのが最善です。
char test = [myString characterAtIndex:0];
if (test >= "0" && test <= "9")
return YES
else
return NO