如何在 iOS 中获取字符串的第一个字母字符

How to get the first alphabet character of a string in iOS

我在 iOS

中有一个 NSString 示例

NSString* str = @"-- 这是一个示例字符串";

我想得到第一个字母。以上情况的结果是单词"This"中的字母"T"。字母 "T" 之前的某些字符不是字母,因此 return 第一个字母是 "T"。

我怎样才能找回它?如果字符串不包含任何字母,它可以 return nil.

此外,结果可以是一个 NSRange

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

先创建一个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;
}
 }

您可以使用以下功能。传递一个字符串并获取第一个字符作为字符串。

-(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;
}