按字母顺序对字母后面的数字进行排序[重复]

问题描述 投票:-1回答:1

这个问题在这里已有答案:

我有一个字符串数组。这些字符串以字母和数字开头。通过使用排序函数,我可以对数字进行排序,然后按字母顺序对字符串进行排序。

let tricks = [ "360", "540", "720", "Blunt", "Nose Grind", "Method Air", "360 Mute Grab", "Japan Air"]
let sortedTricks = tricks.sorted { $0.lowercased() < $1.lowercased() }
print(sortedTricks)
// ["360", "360 Mute Grab", "540", "720", "Blunt", "Japan Air", "Method Air", "Nose Grind"]

我如何升序 - 先将字母排序,然后按升序排序?最终,这就是我希望上面打印的方式:

// ["Blunt", "Japan Air", "Method Air", "Nose Grind", "360", "360 Mute Grab", "540", "720"]
arrays swift string sorting
1个回答
1
投票

目前还不清楚你想要什么,因为你的口头描述与你所显示的输出不符。从给定的输入中很容易实现显示的输出:

let tricks = [ "360", "540", "720", "Blunt", "Nose Grind", "Method Air", "360 Mute Grab", "Japan Air"]
func startsWithANumber(_ s:String) -> Bool {
    return "0123456789".contains(s.first!)
}
let nonnumbers = tricks.filter {!startsWithANumber($0)}
let numbers = tricks.filter {startsWithANumber($0)}
let result = nonnumbers + numbers.sorted()
// ["Blunt", "Nose Grind", "Method Air", "Japan Air", "360", "360 Mute Grab", "540", "720"]

但是,这是否正确涵盖了所有可能的输入集是不可能的,因为您没有以任何清晰或严谨的方式描述您想要的输出。

© www.soinside.com 2019 - 2024. All rights reserved.