2017-07-08 253 views
0

我有一個字符串「000」。我想將其更改爲「0.00」。在字符串中插入字符(Swift)

我看了一下插入函數。

var str = "000" 
str.insert(".", at: str.endIndex) 

如何在結束索引之前得到2的索引?

我想:

str.insert(".", at: str.endIndex - 1) 

但這並沒有在所有的工作。

+2

'str.insert(「。」,at:str.index(str.endIndex,offsetBy:-2))'。不要忘記確保您的字符串數> 2 –

+0

非常感謝! –

+0

https://stackoverflow.com/a/32466063/1187415 –

回答

1

您還可以使用String的s character屬性。它基本上是一個由String中的所有字符(duh)組成的數組。

所以,你會:

var str = "000" 

let index = str.characters.index(str.characters.startIndex, offsetBy: 1) //here you define a place (index) to insert at 
str.characters.insert(".", at: index) //and here you insert 

不幸的是,你必須首先創建一個index,如.insert不允許你指定使用Int位置。

+0

它是一個集合,而不是一個數組(否則你可以用一個Int索引它)。請注意,您的代碼等同於'let index = str.index(str.startIndex,offsetBy:1); str.insert(「。」,at:index)'因爲'String'將這些調用轉發給它的字符視圖。 –

+0

這非常整齊!但是沒有辦法首先創建索引,對嗎?看起來很乏味。 – Marmelador