4

これがコンテキストです

if (self.display.text hasPrefix:[NSString stringWithFormat:@"%@ = ", ANYLETTER])

Matt に感謝します。少し変更を加えたので、残りの書式設定も引き続きチェックされ、期待どおりに動作するようになりました。:)

if ([self.display.text rangeOfString:@" = "].location == 1 && [[NSCharacterSet letterCharacterSet] characterIsMember:[self.display.text characterAtIndex:0]])

編集済み:これは、最初の文字が文字であるかどうかを確認するだけです

char character = [self.display.text characterAtIndex:0];
if ([[NSCharacterSet lowercaseLetterCharacterSet] characterIsMember:character] || [[NSCharacterSet uppercaseLetterCharacterSet] characterIsMember:character])
{
    //String Starts With a Letter
}
4

3 に答える 3

4
if ([[NSCharacterSet letterCharacterSet] characterIsMember:[self.display.text characterAtIndex:0]])
{
    // Starts with letter.
}
于 2012-07-26T16:02:09.297 に答える
1

1 つの方法を次に示します。

unichar ch = [[[self display] text] characterAtIndex:0];
BOOL startsWithLetter = (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')

正規表現ライブラリ/メソッドを使用してチェックすることもできますが、上記は非常にシンプルで高速です。

于 2012-07-26T16:02:01.970 に答える
0

- (NSRange)rangeOfCharacterFromSet:(NSCharacterSet *)aSetofNSStringと passを実行して[NSCharacterSet letterCharacterSet]、範囲の位置が 0 かどうかを確認できます。

于 2012-07-26T16:08:06.003 に答える