4

这是上下文

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

谢谢马特,我对其进行了一些更改,因此它仍然检查了我拥有的其余格式,现在它可以按预期工作。:)

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

这是一种方法:

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并通过[NSCharacterSet letterCharacterSet]并检查范围的位置是否为 0。

于 2012-07-26T16:08:06.003 回答