2010-08-19 143 views
12

我想问一个关于目标C的问题吗?NSString *是否包含一些函数来检查NSString *在UITextField.text中包含一些字符串?例如如何检查NSString是否包含'%'?

NSString *checkString = @"abcd%" 

if(checkString contains '%') // I want this function 
    return YES; 
else 
    return NO; 
+0

的UITextField总是包含一个字符串。 – jtbandes 2010-08-19 06:48:38

+0

@jtbandes,谢谢你的回复。我根据评论改变了问题。请看一下。 – Questions 2010-08-19 07:03:10

回答

7

您可以使用- (NSRange)rangeOfString:(NSString *)aString。该代码将看起来像:

NSRange range = [UITextField.text rangeOfString:@"!"]; 

if (range.length > 0){ 
    NSLog(@"String contains '!'"); 
} 
else { 
    NSLog(@"No '!' found in string"); 
} 
+2

range.length是NSUinteger。它总是> = 0 [link](https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Miscellaneous/Foundation_DataTypes/Reference/reference.html#//apple_ref/doc/uid/ 20000018-SW23) – jackal 2012-11-15 18:14:38

+0

谢谢,没错。我编辑了我的评论。它应该是> 0。 – 2012-11-17 11:24:33

44
if([checkString rangeOfString:@"%"].location != NSNotFound) 
    // hooray! 
+0

在一条线上,就像我们爱他们一样! – 2012-01-17 04:37:50

+3

'if([checkString rangeOfString:@“%”]。length)//更简洁' – wxactly 2013-02-08 19:26:03

2

从以前的帖子中的代码是不正确的

NSRange range = [UITextField.text rangeOfString:@"!"]; 

if (range.length >= 0){ 
    NSLog(@"String contains '!'"); 
} 
else { 
    NSLog(@"No '!' found in string"); 
} 

它应该是 “range.length> 0”