2011-01-13 162 views
1

我有一個小問題。似乎很容易,但我不明白它的工作。 我只想檢查一個字符串是否爲空。這是我到目前爲止有:檢查空字符串

if(mystring.text != @""){ 
    myPath = [myPath stringByAppendingString:mystring.text]; 
} 
+0

在Objective-C,比較字符串時,一定要記住使用`isEqualToString:`。像這樣比較是行不通的。 – Thai 2011-01-13 12:59:00

+0

選中此項:http://jayprakashdubey.blogspot.in/2014/09/better-way-to-check-empty-string.html – 2014-09-30 12:42:34

回答

8

要將NSString比較另外一個,你會使用isEqualToString。你檢查的不平等,所以這將是:

NSString *text = ...; 

if (![text isEqualToString:@""]) { 
    ... 
} 

不過說真的,因爲你只是檢查,如果該字符串是空的,你要像

NSString *text = ...; 

if ([text length] != 0) { 
    ... 
} 

注意,如果textnilif-聲明中的代碼將不會執行。這是因爲[nil length]將返回0。有關更多信息,請參閱Apple文檔中的"Sending Messages to nil"


我懷疑mystring.text是你的情況的NSString,所以這將是

if ([mystring.text length] != 0) { 
    myPath = [myPath stringByAppendingString:mystring.text]; 
} 
+0

謝謝。像它應該這樣工作:-) – Crazer 2011-01-13 13:02:29

0

我會使用類似:

if(someString && [someString lenght]) 
    // string is not empty 
0

我平時檢查,如果長度> 0表示正面測試用例,如果nil也處理。

是這樣的:if ([someString length] > 0) { // do something with someString }

3

你可以試試下面的幾行代碼:

NSString *trimedString = [someString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; 


if(trimedstr != [NSNull null]&& ![trimedstr isEqualToString:@""]) 
{ 
    if([trimedstr length]>0) 
    { 
     NSLog(@"%@", trimedstr); 
    } 
    else 
    NSLog(@"%@",@"this is empty string"); 
}