как убрать повторяющиеся символы в строке? Swift

*let someString = "Эта строка ничегоо не значит, но Суть в этомо чтобы научиться работать Со строками, и стать иOC Девелоперомоо"
var someText = ""
        for letters in someString {
            var counter = 0
            if letters == "о" {
                counter += 1
            } else {
                if counter > 1 {
                }
                someText.append(letters)
            }
            print(someText)*

Ответы (2 шт):

Автор решения: Даниил

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

let someString = "Эта строка ничегоо не значит, но Суть в этомо чтобы научиться работать Со строками, и стать иOC Девелоперомоо"

var uniqueString = ""
var lastCharacter: Character?

for character in someString {
    if character != lastCharacter {
        uniqueString.append(character)
        lastCharacter = character
    }
}

print(uniqueString)

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

Результат выполнения этого кода будет следующим:

Эта строка ничего не значит, но Суть в этом чтобы научиться работать Со строками, и стать иOC Девелоперомо
→ Ссылка
Автор решения: Nowhere Man

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

let someString = "Эта строка ничегоо не значит, но Суть в этомо чтобы научиться работать Со строками, и стать иOC Девелоперомоо"
var someText = ""
var counter = 0

for letter in someString {
    var append = true    
    if (letter == " ") {
        counter = 0;
    } else if letter == "о" {
        counter += 1
        append = counter < 2
    }
    if (append) {
        someText.append(letter)
    }
}

print(someText)

Результат:

Эта строка ничего не значит, но Суть в этом чтобы научиться работать Со строками, и стать иOC Девелоперм

Правда, в таком случае от слова Девелопером остаётся Девелоперм


Если заменить условие, чтобы оставлять каждую нечётную букву o в слове (т.е. удалять каждую чётную) на следующее:

// ...
    else if letter == "о" {
        counter += 1
        append = (counter % 2 ) != 0
    }
// ...

то от слова Девелоперомоо останется Девелопермо:

Эта строка ничего не значит, но Суть в этом чтобы научиться работать Со строками, и стать иOC Девелопермо
→ Ссылка