gpt4 book ai didi

ios - 解析和排序 NSMutableArray Objective C

转载 作者:行者123 更新时间:2023-11-28 18:50:23 24 4
gpt4 key购买 nike

我有一个带有文本的 UITextField:9, 1, x, 1, 3, 3, y, 8

我需要删除所有重复项,删除所有非数字字符并将剩余数字按升序排列。

到目前为止我有:

-(IBAction)sortArrayPressed:(id)sender {

NSMutableArray *array = [[NSMutableArray alloc]init];
[array addObject:self.textToParseTextField.text];

NSLog([array description],nil);

}

输出如下:

Project[10176:2274463] (
"9, 1, x, 1, 3, 3, y, 8"
)

我使用 NSMUtableArray 是否正确?我们如何处理这种同时具有 Int 和 String 类型的数组的解析和排序?谢谢!

最佳答案

你可以这样做,filter 删除非数字字符串,转换为 Set 删除重复项:

objective-C :

NSString *str = @"9, 1, x, 1, 3, 3, y, 8";
NSArray* a = [str componentsSeparatedByString:@", "];
NSMutableArray *b = [NSMutableArray new];
for (NSString *digit in a) {
NSRange range = [digit rangeOfString:@"[0-9]" options:NSRegularExpressionSearch];
if (range.location == NSNotFound) {

} else {
[b addObject:digit];
}
}
b = [NSMutableArray arrayWithArray:[NSSet setWithArray:b].allObjects];
[b sortUsingSelector:@selector(compare:)]; //(1,3,8,9)

swift :

let a = "9, 1, x, 1, 3, 3, y, 8".components(separatedBy: ", ")
let b = a.filter({ $0.range(of: "[0-9]", options: .regularExpression, range: nil, locale: nil) != nil })
Array(Set(b)).sorted() //["1", "3", "8", "9"]

关于ios - 解析和排序 NSMutableArray Objective C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42943094/

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