Как найти целое число в строке и вставить символ перед целым числом в Swift - PullRequest
0 голосов
/ 04 марта 2019

Я пытаюсь составить калькулятор расходов, в котором пользователь просто наберет свои расходы в этом формате «добавить развлекательные фильмы 15», и результат будет напечатан как «развлекательные фильмы $ 15,0».Поскольку этот пользователь мог ввести любой текст, который я хотел сделать динамическим, где, как только в этом случае будет найдено число, например, 15, перед ним ставится знак $.

Просто интересно, каков правильный подход?делать это в Swift?

Ответы [ 2 ]

0 голосов
/ 04 марта 2019

вы можете сделать это:

func textDidChange(textField: UITextField){
    guard let text = textField.text else{return}

        if let numbersRange = text.rangeOfCharacter(from: .decimalDigits){
            text.insert("$", at: numbersRange.lowerBound)
        }

        print(text)

    }
0 голосов
/ 04 марта 2019

Простое решение с регулярным выражением.Он заменяет одну или несколько цифр (\\d+) , за которыми следуют необязательная точка и необязательные цифры дроби (\\.\\d+)? со знаком $ плюс найденная частичная строка (* 1008)*).

let string = "add Entertainment Movies 15"
let result = string.replacingOccurrences(of: "\\d+(\\.\\d+)?", with: "$$0", options: .regularExpression)
...