Как удалить определенные символы в строке? - PullRequest
0 голосов
/ 17 мая 2018

Значение строки иногда меняется

93,93% - 94,13, 85,34,% 74,90, 88,21%

Мне просто нужно извлечь двойное значение, как это.

93,93, 85,34, 74,90, 88,21

Ответы [ 4 ]

0 голосов
/ 17 мая 2018

Используйте Сканер для сканирования значений.Scanner имеет широкие возможности настройки и предназначен для сканирования строковых и числовых значений из слабо разграниченных строк.Ниже приведен пример:

let characterSet = CharacterSet.init(charactersIn: "0123456789.").inverted
let scanner = Scanner(string: "93.93% - 94.13, 85.34, %74.90, 88.21%")
scanner.charactersToBeSkipped = characterSet
var numStr: NSString?
while scanner.scanUpToCharacters(from: characterSet, into: &numStr) {
    print(numStr ?? "")
}

Вывод:

93.93
94.13
85.34
74.90
88.21

Сравнительное регулярное выражение легче понять.

0 голосов
/ 17 мая 2018

Вы можете использовать регулярные выражения для извлечения чисел из вашей строки следующим образом:

let sourceString = "93.93% - 94.13, 85.34, %74.90, 88.21%"

func getNumbers(from string : String) -> [String] {
    let pattern = "((\\+|-)?([0-9]+)(\\.[0-9]+)?)|((\\+|-)?\\.?[0-9]+)" // Change this according to your requirement
    let regex = try! NSRegularExpression(pattern: pattern)
    let matches = regex.matches(in: string, range: NSRange(string.startIndex..., in: string))

    let result = matches.map { (match) -> String in
        let range = Range(match.range, in: string)!
        return String(string[range])
    }

    return result
}

let numberArray = getNumbers(from: sourceString)
print(numberArray)

Результат:

["93.93", "94.13", "85.34", "74.90", "88.21"]
0 голосов
/ 17 мая 2018

для каждого значения, такого как var str='%74.90';, используйте эту строку -

var double=str.match(/[+-]?\d+(\.\d+)?/g).map(function(v) { return parseFloat(v); })[0];
0 голосов
/ 17 мая 2018

Вы должны попробовать использовать регулярное выражение, например, вот так:

[0-9]{2}.[0-9]{2}

Это регулярное выражение находит все строки, которые совпадают с двумя числами, затем снова с точкой и двумя числами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...