有没有一种简单的编程方式可以获取字母表?

10

我想要一个包含字母表所有字母的NSArray/NSMutableArray。一定有一种快速简便的方法,比手动输入所有字母更好。例如在PHP中:

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

你是认真的吗?这里有一个提示:它几乎和用数字从0到25填充NSArray一样容易。 - Alex Brown
不同的编程语言呢? - Andrius Steponavičius
5个回答

24

生成用于表格索引标题的数组也可以被使用。它不使用 for 循环,并且具有多语言支持。

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

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

纯天才。正是我所追求的。 - PKCLsoft
我用几行代码得到了我想要的结果。给你加1分。 - g212gs

23

除非你从下面复制粘贴我的便捷参考资料,否则没有比逐个输入更快的方法!

"abcdefghijklmnopqrstuvwxyz"


为了起到示范作用,这里提供一种更冗长的方式。

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

哦,亲爱的...是的,但为NSMutableArray编写一个简单的for循环会更容易,而且更容易复制到其他用途中,而逐个输入它们只需要时间。 - Thomas Clayson
不需要...我只需要正常的标准英国/美国26个字母。 :) 还有0-9,但我相信我可以处理这一部分! :p - Thomas Clayson
不好使!说我在没有转换的情况下从整数制作了一个指针... :/ - Thomas Clayson
1
不要小看我,我可以为你创建一个使用XML初始化字母表的Web服务。 - Alex Brown
ABCDEFGHIJKLMNOPQRSTUVWXYZ - derpoliuk
显示剩余2条评论

8
有时候将字母打出来是最简单的。以下是它们的数组形式:
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 循环比打字母表要自然得多(至少我是这么认为的)。 - Thomas Clayson
我曾经考虑过这个问题,但是必须手动添加空格让我感到很烦。此外,手动输入所有26个字母意味着你可能会犯错误。 :-p - Alex Brown
说实话,我的第一反应是使用循环。这绝对是像 Ruby 这样的语言更适合的领域。 - Denis Hennessy
另一个微小的好处是更容易适应非连续范围(例如添加0-9)。 - Denis Hennessy
1
在iOS中,如果你把{search}作为字母串的第一个单词插入进去,你会得到放大镜作为索引的顶部字符。如果你在最后一个字符添加#,表示所有数字条目,你将得到与Apple Music应用程序使用的相同索引相同的索引。 - Johan
最好的解决方案并不总是最聪明的解决方案。 - tarrball

4

尝试使用以下代码:


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

这是一个很好的方法,谢谢你不只是说“懒得打字的小...” - Thomas Clayson

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

这就是我想要的,for循环,但我不知道该怎么做。使用PHP,您可以执行简单的for循环... - Thomas Clayson
是的,我不太了解 iPhone 的开发,但 NSArray 似乎是不可变的。这意味着您将无法使用 for 循环添加项目。您可以使用它的后代:NSMutableArray,或者一次性声明数组。 - GolezTrol
你可以在这里查看: https://dev59.com/5kfRa4cB1Zd3GeqP_roM - GolezTrol
是的,抱歉GolezTrol - 我需要输出为NSArray,但我可以使用arrayWithArray:mutableArray将其设置为NSArray,所以没关系 - 我没有使用Mutable Array的偏见 :) - Thomas Clayson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接