很简单吧
你可以继续扩展,问题留给你了,我现在得忙别的
1:多音字的问题
2:第二字母的继续排序
let arr:[String] = ["辽宁", "西藏", "海南", "云南", "河南", "江西", "四川", "湖南", "甘肃", "广东", "广西", "吉林", "河北", "浙江", "内蒙古", "新疆", "江苏", "湖北", "贵州", "福建", "宁夏", "重庆", "上海", "陕西", "青海", "山东", "山西", "黑龙江", "天津", "北京", "安徽"]
//冒泡格式化
func pinYinFormat(_ arr:[String]) -> [String] {
var arr:[String] = arr
for i in 0..<arr.count {
for j in 0..<arr.count - (i+1) {
if (initialChar(arr[j])) > (initialChar(arr[j+1])) {
let temp = arr[j]
arr[j] = arr[j+1]
arr[j+1] = temp
}
}
}
return arr
}
//取得汉字首字母
func initialChar(_ chineseString:String) -> String {
let temp:CFMutableString = CFStringCreateMutableCopy(nil, 0, chineseString as CFString);
CFStringTransform(temp, nil, kCFStringTransformToLatin, false)
CFStringTransform(temp, nil, kCFStringTransformStripCombiningMarks, false)
guard let result = CFStringCreateWithSubstring(nil, temp, CFRangeMake(0, 1)) else { return ""}
return result as String
}