2017-07-14 73 views
1

我正在嘗試查找字符串中字符的當前位置。獲取字符串上的字符位置

該字符本身是一個換行\n

到目前爲止,我已經成功地檢測是否字符串包含下面的代碼的特定字符:

let till: Character = "\n" 
if let idx = text.characters.index(of: till) { 
    print("linefeed detected") 
} else { 
    print("not found") 
} 

如果我printidx可變我得到以下輸出:

Index(_base: Swift.String.UnicodeScalarView.Index(_position: 35), _countUTF16: 1)

正如你所看到的,如果給出的位置是35

我的問題是,我如何訪問該位置實例編號? 如何知道位置是X,Y還是Z.

謝謝。

回答

3

你應該試試這個:

斯威夫特3

let till: Character = "\n" 
    if let idx = text.characters.index(of: till) 
    { 
     let pos = text.characters.distance(from: text.startIndex, to: idx) 
     print(pos) 
    } 
    else 
    { 
     print("not found") 
    } 
+0

唉唉......我從來不曾想起的距離選項:d 謝謝 –

+0

隨時歡迎... –

1

您可以使用distance方法來獲取你尋找角色的指數。

extension String { 
    func indexOf(string: String) -> Int? { 
     if let indexOfCharacter = characters.index(of: Character(string)) { 
      let distance = characters.distance(from: startIndex, to: indexOfCharacter) 
      return distance 
     } 
     return nil 
    } 
} 
+1

是謝謝你。上面的答案也是一樣的。我完全忘記了距離方法 –

-1

//我希望它會幫助你

let NotFound = -1 

extension String { 
public func index(of charecter: Character) -> Int { 
    if let index = characters.index(of: charecter) { 
     return characters.distance(from: startIndex, to: index) 
    } 
    return NotFound 
} 
} 
+0

你好,請給我你爲什麼拒絕爲這個答案投票的原因。 –