美文网首页
两个字符串多元化比较(CompareOptions)

两个字符串多元化比较(CompareOptions)

作者: BBLv | 来源:发表于2020-09-23 11:05 被阅读0次

    业务场景:

    1、拿到AppStore最新版本号(StoreVersion)
    2、获取当前App的版本号(CurentVersion)
    3、本地版本号与线上最新版本号比较,推出当前版本是否落后线上版本,弹出提示用户更新的Dialog

    switch storeVersion.compare(appVersion, options: .numeric) {
            case .orderedDescending:
                print("左边大于右边")
            case .orderedAscending:
                print("左边小于右边")
            case .orderedSame:
                print("左边等于右边")
            default:
                print("default")
            }
    

    涉及到CompareOptions结构体:

    extension NSString {
    
        
        public struct CompareOptions : OptionSet {
    
            public init(rawValue: UInt)
    
            //不区分大小写的搜索。
            public static var caseInsensitive: NSString.CompareOptions { get }
            //逐个字符的完全相同。
            public static var literal: NSString.CompareOptions { get }
            //从源字符串末尾搜索。
            public static var backwards: NSString.CompareOptions { get }
            //搜索仅限于源字符串的开始(或结束,如果为NSBackwardsSearch)。
            public static var anchored: NSString.CompareOptions { get }
            //使用数字值比较字符串中的数字,即Name2.txt <Name7.txt <Name25.txt。
            public static var numeric: NSString.CompareOptions { get }
            //搜索会忽略变音符号。
            @available(iOS 2.0, *)
            public static var diacriticInsensitive: NSString.CompareOptions { get }
            //搜索将忽略具有全角和半角形式的字符的宽度差异,就像在东亚字符集中那样。    
            @available(iOS 2.0, *)
            public static var widthInsensitive: NSString.CompareOptions { get }
            //如果字符串相等但不严格相等,则比较将被强制返回NSOrderedAscending或NSOrderedDescending。
            @available(iOS 2.0, *)
            public static var forcedOrdering: NSString.CompareOptions { get }
            //搜索字符串被视为ICU兼容的正则表达式。 如果设置,则除了caseInsensitive和anchored之外,没有其他选项可以应用。 您只能将此选项与rangeOfString:…方法一起使用,并替换Occurrences(of:with:options:range :)。
            @available(iOS 3.2, *)
            public static var regularExpression: NSString.CompareOptions { get }
        }
    }
    

    相关文章

      网友评论

          本文标题:两个字符串多元化比较(CompareOptions)

          本文链接:https://www.haomeiwen.com/subject/vquwyktx.html