Как проверить, является ли строка строчными? - PullRequest
0 голосов
/ 18 мая 2019

У меня есть код ниже. Я хочу, чтобы строка была написана заглавными буквами, если ввод пользователя выполнен в нижнем регистре. Swift предлагает эту функцию? Я знаю, что в Python это ".islower ()". Я попробовал поискать в Google, я попытался набрать .is и посмотреть, что произойдет, но не повезло.


let holder = PasswordCoreData(entity: PasswordCoreData.entity(), insertInto: context)

if let title = createHolderItem.text {
    holder.item = title

    //here is where I need help
    if holder.item.[islowercased] {
        holder.item = holder.item.capitalized
    }
    holder.username = createHolderUsername.text!
    holder.password = createHolderPassword.text!
}

Ответы [ 2 ]

4 голосов
/ 18 мая 2019

Проверьте, равен ли title версии нижнего регистра title.

if title == title.lowercased() {
    // It's an all lowercase string
}

Вы можете сделать небольшое полезное расширение:

extension StringProtocol {
    var isLowercase: Bool {
        return self == self.lowercased()
    }
}

Теперь используйте его как:

if title.isLowercase {
}
0 голосов
/ 18 мая 2019

Для букв в английском алфавите (от строчных букв a до строчных букв z ) вы можете проверить, что title строчные, проверив, что все скаляры Unicode

let scalars = title.compactMap { $0.unicodeScalars.first?.value }

сделать удовлетворить это условие:

let isLowerCase = scalars.allSatisfy({ $0 > 96 })  //true

Скаляры Unicode от A до Z идут от 65 до 90. Вы можете проверить их следующим образом:

"A".unicodeScalars.first?.value` //65 
"Z".unicodeScalars.first?.value` //90

Что касается строчных букв, они идут от 97 до 122:

"a".unicodeScalars.first?.value  //97 
"z".unicodeScalars.first?.value  //122

Чтобы узнать больше о скалярах Unicode, посмотрите здесь .


Более кратким решением (предложенным @ rmaddy ), которое охватывает буквы с акцентом и буквы других алфавитов, является проверка свойства isLowercase всех символов:

let isLowerCase = title.allSatisfy({ $0.isLowercase })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...