/ / NSStringの最初の文字が数字かどうかを確認する-iphone、objective-c、xcode、nsstring、numbers

NSStringの最初の文字が数字かどうかを判断する - iphone、objective-c、xcode、nsstring、numbers

NSStringsの最初の文字が数字かどうかを判断する方法を知りたかっただけです。

回答:

答えは№1の20
BOOL 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