#android #android-studio #kotlin
#Android #android-studio #kotlin
Вопрос:
У меня была своя идея, но она не сработала
String.text != String.text.toString().lastOrNull() in arrayOf(' ', '-', '/', '*', '.')
С ошибкой
оператор «!=’ не может быть применен к ‘CharSequence!’ ‘и Boolean’
Полный:
if(operation amp;amp; currentOpperand.text != currentOpperand.text.toString().lastOrNull() arrayOf(' ', '-', '/', '*', '.')
(Я хочу, чтобы если Boolean
«операция» == true
и строка не заканчивается этим массивом символов, выводилось » «. (создание калькулятора))
Комментарии:
1. вы можете использовать EndsWith() в Kotlin
2. @ShaluTD Я не думаю, что это работает, потому что он / она хочет проверить наличие массива символов. EndsWith() не принимает vararg символов. Изменение!= с ! .equals() должен выполнять эту работу?
3. Я знаю о EndsWith(), но я хочу создать массив, а make не заканчивается на, что-то вроде этого, если это возможно
4.
!in
— вам это нужно?someString.lastOrNull() !in arrayOf(' ', '-', '/', '*', '.')
5. изменение!= wuth! .equals() не сработал
Ответ №1:
попробуйте это:
if (operation amp;amp; currentOpperand.text.lastOrNull() !in arrayOf(' ', '-', '/', '*', '.')){
}
или
if (operation amp;amp; arrayOf(' ', '-', '/', '*', '.').all { c -> !currentOpperand.text.endsWith(c) }){
}
или с regex
:
if (operation amp;amp; currentOpperand.text.matches(Regex(".*[^ -/*.]$"))){
}
Комментарии:
1. !в сработало хорошо, не ожидал такого простого решения: D Madloba