Как заставить Swift распознавать апостроф?

Я пытаюсь заменить все символы апострофа (') в строке другим символом. Я запускаю этот код:

someString.replacingOccurrences(of: apost, with: "a")

Я попытался, чтобы апост соответствовал следующему:

apost = "\'"
apost = #"'"#
apost = "'"

Ни один из них не удалил апостроф из someString.

Пожалуйста, дайте мне знать, есть ли способ заставить Swift заменить апостроф. Спасибо.

5 ответов

Some String.replacingOccurrences(...) возвращает новый строковый объект с замененными апострофами. Исходный someString этим не изменяется. Тебе нужно

someString = someString.replacingOccurences(...).

Если это произошло, включите больше предупреждений в Xcode (или посмотрите предупреждения). В моей настройке это не было бы скомпилировано из-за неиспользованного возвращаемого значения.

Я была такая же проблема. Это потому, что апостроф - неправильный символ; это должен быть типографский (или «фигурный») апостроф ( ), а не пишущий (или «прямой») апостроф ( '). Скопируйте и вставьте приведенный ниже код или только правильный символ апострофа:

      searchQuery = searchQuery.replacingOccurrences(of: "’", with: "")

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

      let str = "mark's new name is 'mike'"

// apostrophe
var modstr = str.replacingOccurences(of: "\u{0027"}, with "")

// left single quote
modstr = modstr.replacingOccurences(of: "\u{2018"}, with "") 

// right single quote
modstr = modstr.replacingOccurences(of: "\u{2019"}, with "") 

// output
print(modstr)

Выход:

      marks new name is mike

Fixed it. Gnasher was right, I was using a different apostrophe than the one used in the input string. Who knew there were multiple types of damn apostrophes.

Вы можете назначить символ сравнения для апострофа как char charToCompare = (char)8217;

Другие вопросы по тегам