zoukankan      html  css  js  c++  java
  • iOS

    前言

    • 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-02 青蛙跳台阶(斐波那契数列的应用)
    10-01 斐波那契数列
    08 二叉树的下一个节点
    07 重建二叉树
    Java中如何调用静态方法
    Java中如何调用静态方法
    Java方法调用数组,是否改变原数组元素的总结
    Java方法调用数组,是否改变原数组元素的总结
    JAVA中,一个类中,方法加不加static的区别,
    JAVA中,一个类中,方法加不加static的区别,
  • 原文地址:https://www.cnblogs.com/QianChia/p/5777398.html
Copyright © 2011-2022 走看看