我有一個小問題。似乎很容易,但我不明白它的工作。 我只想檢查一個字符串是否爲空。這是我到目前爲止有:檢查空字符串
if(mystring.text != @""){
myPath = [myPath stringByAppendingString:mystring.text];
}
我有一個小問題。似乎很容易,但我不明白它的工作。 我只想檢查一個字符串是否爲空。這是我到目前爲止有:檢查空字符串
if(mystring.text != @""){
myPath = [myPath stringByAppendingString:mystring.text];
}
要將NSString
比較另外一個,你會使用isEqualToString
。你檢查的不平等,所以這將是:
NSString *text = ...;
if (![text isEqualToString:@""]) {
...
}
不過說真的,因爲你只是檢查,如果該字符串是空的,你要像
NSString *text = ...;
if ([text length] != 0) {
...
}
注意,如果text
是nil
,if
-聲明中的代碼將不會執行。這是因爲[nil length]
將返回0
。有關更多信息,請參閱Apple文檔中的"Sending Messages to nil"。
我懷疑mystring.text
是你的情況的NSString
,所以這將是
if ([mystring.text length] != 0) {
myPath = [myPath stringByAppendingString:mystring.text];
}
謝謝。像它應該這樣工作:-) – Crazer 2011-01-13 13:02:29
我會使用類似:
if(someString && [someString lenght])
// string is not empty
我平時檢查,如果長度> 0表示正面測試用例,如果nil也處理。
是這樣的:if ([someString length] > 0) { // do something with someString }
你可以試試下面的幾行代碼:
NSString *trimedString = [someString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
if(trimedstr != [NSNull null]&& ![trimedstr isEqualToString:@""])
{
if([trimedstr length]>0)
{
NSLog(@"%@", trimedstr);
}
else
NSLog(@"%@",@"this is empty string");
}
在Objective-C,比較字符串時,一定要記住使用`isEqualToString:`。像這樣比較是行不通的。 – Thai 2011-01-13 12:59:00
選中此項:http://jayprakashdubey.blogspot.in/2014/09/better-way-to-check-empty-string.html – 2014-09-30 12:42:34