【问题标题】:Is there an easy way to programmatically get the alphabet?有没有一种简单的方法来以编程方式获取字母表?
【发布时间】:2011-05-21 15:33:03
【问题描述】:

我想要一个包含所有字母的NSArray/NSMutableArray。必须有一种快速简便的方法,比全部输入要好。以 PHP 为例:

foreach(range('A','Z') as $i) $alphabet[]=$i;

【问题讨论】:

  • 你是认真的吗?这是一条线索:它几乎就像用 0 到 25 的数字填充 nsarray 一样简单。
  • 不同的语言呢?

标签: iphone objective-c alphabet


【解决方案1】:

没有比全部输入更快的方法了,除非你从下面剪切并粘贴我方便的参考!

"abcdefghijklmnopqrstuvwxyz"


为了它,这里有一条更长的路。

for (char a = 'a'; a <= 'z'; a++)
{
  [myArray addObject:[NSString stringWithFormat:@"%c", a]];
}

【讨论】:

  • 哦,亲爱的...是的,但是键入一个简单的 for 循环以与 NSMutableArray 一起使用会更容易,并且对于其他用途更可复制,而将它们逐个键入则需要时间。
  • 您是否关心具有不同字符集的非美国字母?
  • 不...我只想要正常的标准英国/美国 26 个字母。 :) 哦,0-9,但我相信我能做到这一点! :p
  • 不起作用!说我正在从一个没有强制转换的整数中创建一个指针......:/
  • 别叫我软弱——我可能会为你创建一个 Web 服务来使用 XML 初始化字母表。
【解决方案2】:

您可以使用 for 循环来生成它们,但我认为输入它们更容易。这肯定比在这里发布问题更容易。 ;)

【讨论】:

  • 这就是我想要的,for 循环,但我不知道该怎么做。看看用php你可以做一个简单的for循环...
  • 是的,好吧,我对 iPhone 开发了解不多,但是 NSArray 似乎是不可变的。这表明您将无法使用 for 循环添加项目。您可以使用它的后代:NSMutableArray,或者您应该立即声明该数组。
  • 是的,对不起 GolezTrol - 我需要输出为 NSArray,但我可以使用 arrayWithArray:mutableArray 将其设置为 NSArray 所以,没关系 - 我没有反对使用可变数组: )
【解决方案3】:

有时输入字母是最简单的。这里它们是一个数组:

NSArray *letters = [@"A B C D E F G H I J K L M N O P Q R S T U V W X Y Z" componentsSeparatedByString:@" "];

【讨论】:

  • 这是一种新颖而有用的方法。然而,关键是输入字母表中的每个字母都需要时间。键不在最好的位置,即时键入 for 循环比键入字母表更自然(我还是找到了)。
  • 我正在考虑这个问题,但不得不添加空格让我很恼火。此外,手动输入所有 26 个字母意味着您可能会犯错。 :-p
  • 说实话,我的第一直觉是使用循环。这绝对是 ruby​​ 等语言更适合的领域。
  • 另一个小好处是它更容易适应不连续的范围(例如添加 0-9)
  • 而在 iOS 中,如果您潜入 {search} 作为该字母字符串中的第一个单词,您将获得放大镜作为索引的顶部字符。如果您添加 # 作为最后一个字符,以指示所有数字条目,您将获得与 Apple Music 应用程序使用的索引相同的索引。
【解决方案4】:

试试下面的代码;


int a = 65;
for (; a < 91; a++) {
    [array addObject:[NSString stringWithFormat:@"%c", (char)a]];
}
NSLog(@"%@", array);

【讨论】:

  • 这是一个很好的方法,感谢您不只是说“你这个懒惰的小家伙把它输入...”
【解决方案5】:

也可以使用为表索引标题生成的数组。它不使用for 循环并支持多语言。

NSMutableArray *alphabets = [[NSMutableArray alloc] initWithArray:[[UILocalizedIndexedCollation currentCollation] sectionIndexTitles]];

//Remove the last object (extra), '#' from the array.
[alphabets removeLastObject];

【讨论】:

  • 纯粹的天才。正是我所追求的。
  • 几行代码我就得到了我想要的。为此 +1
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-13
  • 1970-01-01
  • 1970-01-01
  • 2010-09-15
  • 1970-01-01
相关资源
最近更新 更多