iOS - Swift Range 范围

前言

  • Range:结构体,这个结构体用来表示一个区间的范围。

        public struct Range<Element : ForwardIndexType> : Equatable, CollectionType, CustomStringConvertible, CustomDebugStringConvertible
  • NSRange:结构体,这个结构体用来表示事物的一个范围,通常是字符串里的字符范围或者集合里的元素范围。

        public typealias NSRange = _NSRange
    
        public struct _NSRange {
            public var location: Int
            public var length: Int
            public init()
            public init(location: Int, length: Int)
        }
    
        extension NSRange {
            public init(_ x: Range<Int>)
            @warn_unused_result
            public func toRange() -> Range<Int>?
        }

1、Range 结构体变量的创建与调用

    // Range 结构体变量的创建与赋值
    
        let str = "hello world"
    
        // 1..<9
        let range1:Range = Range(1...8)
        
        // 2..<5
        var range2:Range = Range(2..<5)
        
        // 3..<7
        let range3:Range = str.startIndex.advancedBy(3)...str.startIndex.advancedBy(6)
    
    // Range 值的修改

        range2.startIndex = 3
        range2.endIndex = 6
        
    // Range 值的判断
    
        let bl:Bool = range2.isEmpty

2、NSRange 结构体变量的创建与调用

    // NSRange 结构体变量的创建与赋值
            
        // 先定义变量,再赋值
        var nsRange1:NSRange = NSRange()
        nsRange1.location = 6;
        nsRange1.length = 1;
            
        // 定义时直接赋值
        let nsRange2:NSRange = NSRange(location: 7, length: 2)
            
        // 由区间值创建
        let nsRange3:NSRange = NSRange(2...9)
            
        // 由方法创建
        let nsRange4:NSRange = NSMakeRange(1, 8)
        
    // NSRange 结构体变量值的调用
        
        print("\(nsRange1.location), \(nsRange1.length)")

3、NSRange 与 Range 的相互转换

    // Range 转 NSRange
    let nsRange:NSRange = NSRange(1...10)
    
    // NSRange 转 Range
    let range:Range? = nsRange.toRange()

4、NSRange 与 String 的相互转换

    let nsRange1 = NSRange(location: 7, length: 2)
    
    // NSRange 转 String
    let string:String = NSStringFromRange(nsRange1)
        
    // String 转 NSRange
    let nsRange:NSRange = NSRangeFromString(string)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值