У меня есть следующий простой код, написанный на Swift 3:
let str = "Hello, playground"
let index = str.index(of: ",")!
let newStr = str.substring(to: index)
Из Xcode 9 beta 5 я получаю следующее предупреждение:
«
substring(to:)
» устарело: используйтеString
подстрочный индекс с оператором «частичный диапазон от».
Как можно использовать этот индекс среза с частичным диапазоном из Swift 4?
Ответы:
Вы должны оставить одну сторону пустой , отсюда и название «частичный диапазон».
То же самое относится к частичному диапазону от операторов, просто оставьте другую сторону пустой:
Имейте в виду, что эти операторы диапазона возвращают a
Substring
. Если вы хотите преобразовать его в строку, используйтеString
функцию инициализации:Вы можете прочитать больше о новых подстроках здесь .
источник
str[..<index]
возвращаетSubstring
. Если вы хотитеnewStr
быть,String
вы должны написать:let newStr = "\(str[..<index])"
Substring
, вероятно , немного запутанным, так как то , что вы на самом деле пытаетесь достичь являетсяString
инициализация:let newStr = String(str[..<index])
.Cannot subscript a value of type 'String' with an index of type 'PartialRangeUpTo<Int>'
. Какие типы значений должны использоваться там?str[..<str.index(str.startIndex, offsetBy: 8)]
что-то в этом роде. Имейте в виду, чтоstr.index
это линейная операция времени в функцииoffsetBy
.str.prefix(8)
Преобразовать подстроку (Swift 3) в нарезку строк (Swift 4)
Примеры в Swift 3, 4:
источник
Свифт 5, 4
использование
Код
источник
Короче в Swift 4/5:
источник
Преобразование вашего кода в Swift 4 также можно выполнить следующим образом:
Вы можете использовать код ниже, чтобы получить новую строку:
источник
подстрока (из: index) преобразована в [index ...]
Проверьте образец
источник
Swift5
(Метод подстроки Java):
Использование:
источник
from
кto-1
, например ,"Hello".substring(1,4)
возвращается «флигель»). С небольшой модификацией (startIndex..<endIndex
) это лучшее решение, которое я нашел на данный момент, которое делает именно это с помощью всего лишь нескольких строк кода.Некоторые полезные расширения:
источник
Пример
uppercasedFirstCharacter
удобства собственности в Swift3 и Swift4.Свойство
uppercasedFirstCharacterNew
демонстрирует, как использовать строковый индекс в Swift4.источник
Вы можете создать свой собственный метод subString, используя расширение класса String, как показано ниже:
источник
Создание SubString (префикс и суффикс) из String с помощью Swift 4:
Вывод
Если вы хотите сгенерировать подстроку между двумя индексами, используйте:
источник
Я написал расширение строки для замены 'String: subString:'
PS: опционально нужно развернуть. Пожалуйста, добавьте проверку безопасности типа, где это необходимо.
источник
При программировании у меня часто бывают строки с простыми A-Za-z и 0-9. Нет необходимости в сложных действиях индекса. Это расширение основано на простых старых функциях left / mid / right.
источник
с помощью этого метода вы можете получить конкретный диапазон строк. вам нужно передать начальный индекс и после этого общее количество символов, которое вы хотите.
источник
Это мое решение, без предупреждения, без ошибок, но идеально
источник
encodedOffset
является считается вредным и будет устаревшим .Надеюсь, это поможет немного больше: -
Если вы хотите подстроку после определенного индекса.
Если вы хотите подстроку после удаления какой-либо строки в конце.
Вы также можете создать индексы с помощью следующего кода: -
источник
Надеюсь, это будет полезно.
источник
Вы можете попробовать таким образом и получите надлежащие результаты.
источник