Я хочу найти индекс последнего вхождения символа в String. Например, если моя строка "google.com/program/test"
, и я хочу найти письмо /
, я хочу, чтобы моя функция возвращалась 18
, потому что это последнее вхождение /
в этой строке. Я попытался следовать Finding index of character in Swift String, а также попытался реализовать средство для прокрутки строки и просто найти последний индекс String с моим желаемым символом, но функция advance()
, похоже, жалуется на получение Integer.Найти последнее появление символа в String?
var strCount = 0
var lastSlashIndex = 0
for i in urlAsString {
if i == "/"{
if lastSlashIndex < strCount{
lastSlashIndex = strCount
}
}
strCount++
}
var endOfString = strCount - lastSlash
//Cannot seem to use the advance function to get the remaining substring
var fileName = urlAsString.substringFromIndex(advance(lastSlashIndex, endOfString))
Не может показаться, что это понятно, любая помощь будет оценена.
EDIT: Эта проблема не относится к конкретному символу '/'. Например, если строка "abbccd"
и я ищу для письма 'c'
, то я хочу вернуть индекс 4
, потому что это последний индекс, в котором 'c'
происходит.
Учитывая этот конкретный пример, ваш вопрос немного из проблемы XY. – nhgrif
Прошу прощения, я не хотел делать это настолько конкретным. Я хочу просто найти последнее вхождение определенного персонажа. Это может быть любой символ. Например, если строка «abbccd», и я ищу букву «c», то я хочу вернуть индекс 4, потому что это последний индекс, в котором c встречается. @Nhgrif – user1871869
Действительно ли это * что ты хочешь? Или вы действительно пытаетесь найти имя файла из строки, которая похожа на путь к файлу? Для этого есть очень простой однострочный лайнер ... – nhgrif