Можно ли выполнить код один раз во вложенном для l oop в Swift? - PullRequest
0 голосов
/ 05 марта 2020

Я очень новичок в Swift. Пожалуйста, наведите меня, если я не знаю

Есть ли какая-либо функция, чтобы проверить l oop, выполнить код один раз и вернуть

 let array = [x1,x2,x3]
 let arr = [a1,a2,a3]
 var Str = String()


for i in 0... array.count-1 {

   for m in 0...arr.count-1 {
      if Str.contains("\(arr[m])"){
        self.Str.replacingOccurrences(of: "\(arr[m])", with: "\(array[i])", options: NSString.CompareOptions.literal, range: nil)
}
} 

, если в Str есть все a1, a2, а3 в его тексте.

i = 0, l oop заменит a1, a2, a3 на x1.

Я хочу, чтобы l oop нашел и заменил ОДИН раз, затем остановился, поэтому я хочу получить результат: x1 заменяет a1, x2 заменяет a2, x3 заменяет a3.

Спасибо

Ответы [ 2 ]

0 голосов
/ 05 марта 2020

Чтобы заменить только первое вхождение, это более быстрое решение

let array = ["x1","x2","x3"]
let arr = ["a1","a2","a3"]
var str = "sdla1fkga2jhsa3ldfkjgh"

for (index, element) in arr.enumerated() {
    if let range = str.range(of: element) {
        str.replaceSubrange(range, with: array[index])
    }
}
0 голосов
/ 05 марта 2020

Для завершения всех oop вы используете break

for for i in 0..<array.count {
    if someCondition {
        //do stuff
        break
    }
}
...