首先,我试图弄清楚“rangeOfString”的功能。根据我自己的理解,我认为“rangeOfString”是在字符串中找到一些指定事物的函数,就像一个单词。如“a”这个词是“苹果”的第一部分。这个解释如何在函数的返回中显示。 NSRange是该函数的返回类型。由于我英语不好,我无法理解'NSRange'的官方参考。
问题是:
非常感谢您的指导和帮助。
Ethan Joe
答案 0 :(得分:2)
有一种英语谚语:“大海捞针”,指的是在大海捞针中难以找到针,因为针和干草叶都很长而且很干,干草堆通常比较大针。
假设你有一大块文字,你的“草堆”。你想知道在那个干草堆里你能找到一小块文字,你的“针”。您可以使用rangeOfString
消息在大海捞针中找到针。
以下是一个例子:
$ xcrun swift -framework Foundation
1> import Foundation
2> let haystack: NSString = "the function to find some specify thing in the string"
haystack: NSString = "the function to find some specify thing in the string"
3> let needle: NSString = "function"
needle: NSString = "function"
4> haystack.rangeOfString("function")
$R0: NSRange = location=4, length=8
5>
rangeOfString
消息返回NSRange
,其中包含两部分:
location
是指针在大海捞针中开始的指针。干草堆开头的索引为零。length
是指针的长度。你可能已经注意到length
并不是必需的,因为你可以问针的长度(needle.length
)。但NSRange
用于length
部分可能不明显的其他内容。
如果针不在大海捞针中,rangeOfString
会返回一个看起来很滑稽的位置:
5> haystack.rangeOfString("Ethan Joe")
$R1: NSRange = location=9223372036854775807, length=0
说什么?好吧,它实际上返回了一个名为NSNotFound
的常量:
6> NSNotFound
$R2: Int = 9223372036854775807
您可以使用该常数来检查针是否缺失:
7> if haystack.rangeOfString("Ethan Joe").location == NSNotFound {
8. println("Where did he go?")
9. }
Where did he go?
答案 1 :(得分:1)
这里是样本
let myNSString: NSString = "12345678"
let firstDigit = myNSString.substringWithRange(NSRange(location: 0, length: 1))
let secondDigit = myNSString.substringWithRange(NSRange(location: 1, length: 1))
let thirdDigit = myNSString.substringWithRange(NSRange(location: 2, length: 4))
//firstDigit = 1
//secondDigit = 2
//thirdDigit = 3456