你如何检查NSString是否以一个特定的字符(字符*)开始。

*是单元格类型的指示器,所以我需要这个NSString的内容没有*,但需要知道*是否存在。


当前回答

你可以使用NSString的-hasPrefix:方法:

objective - c:

NSString* output = nil;
if([string hasPrefix:@"*"]) {
    output = [string substringFromIndex:1];
}

迅速:

var output:String?
if string.hasPrefix("*") {
    output = string.substringFromIndex(string.startIndex.advancedBy(1))
}

其他回答

这可能有用吗?:)

http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html / / apple_ref / occ instm / NSString / characterAtIndex:

只需搜索索引为0的字符,并将其与您正在寻找的值进行比较!

你可以使用NSString的-hasPrefix:方法:

objective - c:

NSString* output = nil;
if([string hasPrefix:@"*"]) {
    output = [string substringFromIndex:1];
}

迅速:

var output:String?
if string.hasPrefix("*") {
    output = string.substringFromIndex(string.startIndex.advancedBy(1))
}

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。

你可以使用:

NSString *newString;
if ( [[myString characterAtIndex:0] isEqualToString:@"*"] ) {
     newString = [myString substringFromIndex:1];
}

使用characterAtIndex:。如果第一个字符是星号,使用substringFromIndex:获取不带'*'的字符串。