gpt4 book ai didi

iphone - 我在 NSString 上有一个 NSArray,但有些字符串只是数字。如何正确地按数字排序?

转载 作者:行者123 更新时间:2023-12-03 16:24:48 27 4
gpt4 key购买 nike

我的 NSArray 包含 100、110、91、98 和 87,都是 NSString。

我想对它们进行排序,使其按以下顺序显示:87、91、98、100、110。

相反,它们显示为 100、110、87、91、98。

不幸的是,我无法使用所有整数而不是字符串来启动数组。任何人都知道如何判断数组是否仅包含字符串中的数字,也许使用 for 循环?然后我可以将它们全部转换为数组中的整数并以这种方式进行排序。或者也许我缺少一种简单的方法?

如果有人有任何想法,请告诉我。

最佳答案

您可以使用 NSString 比较函数的 NSNumericSearch 选项对字符串进行数字排序。要使用 NSArray 执行此操作,您需要编写一个 block 或函数来调用 compare:options: 方法。

NSArray *theStrings; // Contains strings, some of which are numbers
NSArray *theSortedStrings = [theStrings sortedArrayUsingComparator:^(id obj1, id obj2) {
return [(NSString *)obj1 compare:(NSString *)obj2 options:NSNumericSearch];
}];

如果字符串中有数字,这也会按数字排序,即 "abcd89" 将出现在 "abcd123" 之前。

关于iphone - 我在 NSString 上有一个 NSArray,但有些字符串只是数字。如何正确地按数字排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7375561/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com