在Swift中迭代字符串以获取移动号码

时间:2018-01-27 16:01:02

标签: ios swift

我正在尝试从一长串字符串中获取手机号码,其中包含用逗号分隔的手机号码。

E.g:

8809394847, 9988338847, 9933883384, 8833938373

在我的代码中,我有一个接受手机号码来完成特定工作的功能。我的整个字符串存储在一个名为inputData的变量中。

我尝试使用此代码:

let mob = inputData.index(of: " ") ?? inputData.endIndex
    let mobile = inputData[..<mob]
    MyJob(phone: mobile). //Function that accepts mobile number

但这没有任何意义。

我的原始代码:

@IBAction func clickButton(_ sender: UIButton) {
    inputData = textView.text!

    MyJob(phone: mobile).  //Calling function

}

我需要在clickButton函数中运行某种循环来获取手机号码并将其逐个发送到MyJob函数。

4 个答案:

答案 0 :(得分:1)

你最好尝试组件分离字符串功能

@IBAction func clickButton(_ sender: UIButton) {

  inputData = textView.text!

  var mobileNumbers = inputData.components(separatedBy: ",")

  for mobile in mobileNumbers {
     MyJob(phone: mobile) //Calling function
  }

 }

答案 1 :(得分:1)

使用带参数components(separatedBy的{​​{1}}制作数组然后使用循环

", "

答案 2 :(得分:1)

您只需使用let string = "8809394847, 9988338847, 9933883384, 8833938373" let phoneNumbers = string.components(separatedBy: ", ") for phoneNumber in phoneNumbers { MyJob(phone: phoneNumber) } 将字符串拆分为单独的电话号码即可。

String.components(separatedBy:)

答案 3 :(得分:0)

您可以使用split函数将子字符串数组添加为[subStrings],如

let str = "8809394847,9988338847,9933883384, 8833938373"
let arrayOfNumbers = str.split(separator: ",")
print(arrayOfNumbers)

输出:     [“8809394847”,“9988338847”,“9933883384”,“8833938373”]

迭代此数组并将其逐个发送到MyJob函数。

希望这有帮助。