你如何检查NSString是否以一个特定的字符(字符*)开始。
*是单元格类型的指示器,所以我需要这个NSString的内容没有*,但需要知道*是否存在。
你如何检查NSString是否以一个特定的字符(字符*)开始。
*是单元格类型的指示器,所以我需要这个NSString的内容没有*,但需要知道*是否存在。
当前回答
另一种方法。
希望它能帮助某人……
if ([[temp substringToIndex:4] isEqualToString:@"http"]) {
//starts with http
}
其他回答
使用characterAtIndex:。如果第一个字符是星号,使用substringFromIndex:获取不带'*'的字符串。
你可以使用:
NSString *newString;
if ( [[myString characterAtIndex:0] isEqualToString:@"*"] ) {
newString = [myString substringFromIndex:1];
}
NSString* expectedString = nil;
if([givenString hasPrefix:@"*"])
{
expectedString = [givenString substringFromIndex:1];
}
作为一个更通用的答案,尝试使用hasPrefix方法。例如,下面的代码检查字符串是否以10开头,这是用于识别某个问题的错误代码。
NSString* myString = @"10:Username taken";
if([myString hasPrefix:@"10"]) {
//display more elegant error message
}
hasPrefix工作得特别好。 例如,如果你在NSString中寻找一个http url,你会使用componentsSeparatedByString创建一个NSArray,并使用hasPrefix迭代数组以http开头的元素。
NSArray *allStringsArray =
[myStringThatHasHttpUrls componentsSeparatedByString:@" "]
for (id myArrayElement in allStringsArray) {
NSString *theString = [myArrayElement description];
if ([theString hasPrefix:@"http"]) {
NSLog(@"The URL is %@", [myArrayElement description]);
}
}
hasPrefix返回一个布尔值,指示给定字符串是否与接收方的开头字符匹配。
- (BOOL)hasPrefix:(NSString *)aString,
parameter aString是你要找的字符串 如果string与接收方的开头字符匹配,则返回值为YES,否则为NO。如果aString为空则返回NO。