首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Swift中以特定的方式从字符串中提取数字

在Swift中,可以通过使用正则表达式或者遍历字符串的方式来从字符串中提取数字。

使用正则表达式: 在Swift中,可以使用NSRegularExpression类来进行正则表达式的匹配和提取。以下是一个使用正则表达式从字符串中提取数字的示例代码:

代码语言:txt
复制
import Foundation

func extractNumbersFromString(inputString: String) -> [String] {
    do {
        let regex = try NSRegularExpression(pattern: "\\d+", options: [])
        let results = regex.matches(in: inputString, options: [], range: NSRange(location: 0, length: inputString.utf16.count))
        return results.map {
            String(inputString[Range($0.range, in: inputString)!])
        }
    } catch let error {
        print("Invalid regex: \(error.localizedDescription)")
        return []
    }
}

let inputString = "I have 123 apples and 456 oranges."
let numbers = extractNumbersFromString(inputString: inputString)
print(numbers)  // Output: ["123", "456"]

这个示例代码定义了一个名为extractNumbersFromString的函数,它接受一个字符串作为输入,并返回提取到的数字组成的数组。函数内部使用NSRegularExpression类创建了一个匹配数字的正则表达式,并通过调用matches(in:options:range:)方法来获取匹配结果。然后,将匹配结果转换为字符串,并将结果存储到数组中返回。

使用遍历字符串的方式: 在Swift中,也可以通过遍历字符串的方式逐个字符判断是否为数字,并将数字字符组成的子串添加到结果数组中。以下是一个使用遍历字符串的方式从字符串中提取数字的示例代码:

代码语言:txt
复制
func extractNumbersFromString(inputString: String) -> [String] {
    var numbers: [String] = []
    var currentNumber: String = ""
    let decimalDigits = CharacterSet.decimalDigits
    
    for character in inputString {
        if decimalDigits.contains(character.unicodeScalars.first!) {
            currentNumber.append(character)
        } else if !currentNumber.isEmpty {
            numbers.append(currentNumber)
            currentNumber = ""
        }
    }
    
    if !currentNumber.isEmpty {
        numbers.append(currentNumber)
    }
    
    return numbers
}

let inputString = "I have 123 apples and 456 oranges."
let numbers = extractNumbersFromString(inputString: inputString)
print(numbers)  // Output: ["123", "456"]

这个示例代码定义了一个名为extractNumbersFromString的函数,它接受一个字符串作为输入,并返回提取到的数字组成的数组。函数内部通过遍历字符串的方式逐个字符判断是否为数字,并将数字字符组成的子串添加到结果数组中。当遇到非数字字符时,将当前数字字符串添加到结果数组中,并清空当前数字字符串。最后,如果当前数字字符串不为空,将其添加到结果数组中。最终返回结果数组。

以上是在Swift中以特定的方式从字符串中提取数字的方法。这些方法可以帮助您在Swift开发中处理字符串中的数字提取需求。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券