2017-07-08 4 views
0

Ich habe eine Zeichenfolge "000". Ich möchte dies auf "0.00" ändern.Einfügen eines Zeichens in String (Swift)

Ich habe mir die Insert-Funktion angeschaut.

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

Wie bekomme ich den Index von 2 vor dem End-Index?

Ich habe versucht:

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

aber überhaupt nicht funktionieren.

+2

'str.insert (". ", Unter: str.index (str.endIndex, offsetBy: -2))'. Vergessen Sie nicht, dass Ihre Zeichenketten zählen> 2 –

+0

Vielen Dank! –

+0

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

Antwort

1

Sie könnten auch String s character Eigenschaft verwenden. Es ist im Grunde ein Array aus allen Zeichen (Duh) in der Zeichenfolge.

So würden Sie:

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 

Leider müssen Sie eine index erste erstellen, wie .insert nicht erlaubt, die Position zu spezifizieren einen Int verwenden.

+0

Es ist eine Sammlung, kein Array (sonst könnte man es mit einem Int indexieren). Beachten Sie, dass Ihr Code äquivalent zu 'let index = str.index (str.startIndex, offsetBy: 1); str.insert (".", at: index) 'da' String' diese Aufrufe an seine Zeichenansicht weiterleitet. –

+0

Das ist ziemlich ordentlich! Aber es gibt keinen Weg um einen Index zu erstellen, oder? Es scheint langweilig. – Marmelador

Verwandte Themen