首页 > 解决方案 > 如何检查数组字符串元素是否包含数字

问题描述

假设我有一个数组:

var myArray = ["bla_01", "bla_02", "tra", "bla", "tra_01", "tra_14]

我想对它们进行排序并只获取其中包含数字的字符串。所以我func只需要返回“bla_01”、“bla_02”、“tra_01”、“tra_14”值。

我现在有这样的代码,但这只会得到第一个值,如果有 item_01、item_02、bla_02,这将只删除 item_01、item_02 并忽略 bla_02。稍后排序并仅返回具有最高编号的相同名称值。

    func unequeValues() {
    var number = 1
    for item in tricks {
        if item.contains("\(number)") {
              print(item)
            number += 1
        }

    }

}

标签: iosarraysswift

解决方案


使用 String 类中的 rangeOfCharacter 方法的简单 Swift 4 版本:

let myArray = ["bla_01", "bla_02", "tra", "bla", "tra_01", "tra_14"]

let filteredArray = myArray.filter{$0.rangeOfCharacter(from: .decimalDigits) != nil }
                               .sorted{$0.localizedStandardCompare($1) == .orderedAscending}

推荐阅读