我有一個例子,iOS版的NSString如何得到一個字符串的第一個字母字符的iOS
的NSString *海峽= @「 - 這是一個例子字符串」;
我想要得到第一個字母。以上情況的結果是來自單詞「This」的字母「T」。字母「T」之前的某些字符不是字母,所以它返回的第一個字母是「T」。
我該如何檢索它?如果字符串不包含任何字母,它可以返回零。
此外,其結果可能是一個NSRange
我有一個例子,iOS版的NSString如何得到一個字符串的第一個字母字符的iOS
的NSString *海峽= @「 - 這是一個例子字符串」;
我想要得到第一個字母。以上情況的結果是來自單詞「This」的字母「T」。字母「T」之前的某些字符不是字母,所以它返回的第一個字母是「T」。
我該如何檢索它?如果字符串不包含任何字母,它可以返回零。
此外,其結果可能是一個NSRange
首先創建一個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;
}
}
NSRange range = [string rangeOfCharacterFromSet:[NSCharacterSet letterCharacterSet]];
您可以使用以下功能。傳遞一個字符串並將第一個字符作爲一個字符串。
-(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;
}
感謝您的sugesstion。你的解決方案效果很好,但它需要做更多的工作。我想知道iOS SDK是否支持。 –
@Sahed Roy,謝謝。你的回答與Jody Hagins的回答非常相似。 –
很高興我可以幫助:) –