2017-02-27 2 views
2

Versuchen Sie, Int einen Weg zu finden, plain English Nummer (zB One, Two ...) zu Int (zB 1, 2, ...) konvertierenNumberFormatter.Style.spellOut Convert

Ich weiß, dass mit

numberFormatter:NumberFormatter = NumberFormatter() 
numberFormatter.numberStyle = NumberFormatter.Style.spellOut 
var string = numberFormatter.string(from: 3) // "three" 

gibt es einen umgekehrten Weg, dies zu konvertieren ist Weg von Int Englisch zu konvertieren?

Ich versuche, wie ["One", "Two"..]

Antwort

2

Anzahl Formatierer mit Array von String zu vermeiden arbeiten in beiden Richtungen, so dass Sie nur verwenden:

let num = numberFormatter.number(from: string) 

Aber Sie werden etwas kümmern müssen, um sicherzustellen sicher, dass es genau der Ausgabe der Vorwärtsrichtung entspricht. wird in 3 übersetzt, aber "Three" wird nicht.

Wie Sultan bemerkt, ist dies absolut empfindlich für das Gebietsschema des Formatierungsprogramms (das Sie anders als das Gebietsschema des Benutzers festlegen können, wenn dies erforderlich ist). Es wird stark davon ausgegangen, dass die Eingabe und Ausgabe von demselben Formatierer übereinstimmen.

+1

Dies ist auch sehr empfindlich für das Gebietsschema. – Sulthan

+0

Vielen Dank! Genau das, was ich gesucht habe –