2015-08-29 183 views
-1

我有一個例子,iOS版的NSString如何得到一個字符串的第一個字母字符的iOS

的NSString *海峽= @「 - 這是一個例子字符串」;

我想要得到第一個字母。以上情況的結果是來自單詞「This」的字母「T」。字母「T」之前的某些字符不是字母,所以它返回的第一個字母是「T」。

我該如何檢索它?如果字符串不包含任何字母,它可以返回零。

此外,其結果可能是一個NSRange

回答

1

首先創建一個NSCharecterSet爲全局變量和編寫代碼

-(void)viewDidLoad{ 
    NSCharacterSet *s = [NSCharacterSet characterSetWithCharactersInString:@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"] 
s = [s invertedSet]; 
NSString *myString = @"--- This is a string"; 
NSArray *arrayOfStrings = [myString componentsSeparatedByString:@" "]; 
for(int i=0;i<arrayOfStrings.count){ 
NSString *current = [arrayOfStrings objectAtIndex:i]; 
char c = [self returnCharacter:current]; 
if(c == nil){ 
    //that means first word is not with alphabets; 
} 
else { 
NSLog(@"%c",c); 
//your output. 
} 

} 
} 

這裏是方法

-(char)returnChracter:(NSString*)string{ 

NSRange r = [string rangeOfCharacterFromSet:s]; 
    if (r.location != NSNotFound) { 
    NSLog(@"the string contains illegal characters"); 
return nil; 
    } 
else { 
//string contains all alphabets 
    char firstLetter = [string charAtIndex:0]; 
return firstLetter; 
} 
} 
+0

@Sahed Roy,謝謝。你的回答與Jody Hagins的回答非常相似。 –

+0

很高興我可以幫助:) –

2
NSRange range = [string rangeOfCharacterFromSet:[NSCharacterSet letterCharacterSet]]; 
1

您可以使用以下功能。傳遞一個字符串並將第一個字符作爲一個字符串。

-(NSString*)getFirstCharacter:(NSString*)string 
{ 
for(int i=0;i<string.length;i++) 
    { 
    unichar firstChar = [string characterAtIndex:i]; 
    NSCharacterSet *letters = [NSCharacterSet letterCharacterSet]; 
     if ([letters characterIsMember:firstChar]) { 
     return [NSString:stringWithFormat:@"%c",firstChar]; 
     } 
    } 

    return nil; 
} 
+0

感謝您的sugesstion。你的解決方案效果很好,但它需要做更多的工作。我想知道iOS SDK是否支持。 –

相關問題