Android 如果字符串的最后一个字符包含此数组Kotlin

Android 如果字符串的最后一个字符包含此数组Kotlin,android,android-studio,kotlin,jvm,Android,Android Studio,Kotlin,Jvm,如果(某些字符串以(X,Y,Z)数组中的字符结尾){ 做… } 试图使用 var test = "Some string Z" if (test.isNotEmpty() && test.last() in arrayOf('X', 'Y', 'Z')) //check if the last char == 'X' || 'Y' || 'Z' { test = test.dropLast(1) + 'A' // if yes replace wit

如果
(某些字符串以(X,Y,Z)数组中的字符结尾){
做…
}
试图使用

var test = "Some string Z"

if (test.isNotEmpty() && test.last() in arrayOf('X', 'Y', 'Z')) //check if the last char == 'X' || 'Y' || 'Z'
{
    test = test.dropLast(1) + 'A' // if yes replace with `A`
}
但是android给出了一个编译错误:

e:org.jetbrains.kotlin.codegen.CompilationException:后端(JVM) 内部错误:

搜索任何其他解决方案

尝试使用正则表达式

var test = "Some string Z"
val array = arrayOf('X', 'Y', 'Z')
if (test.matches(".*(${array.joinToString("|")})$".toRegex())) {
    test = test.dropLast(1) + 'A'
}
忽略区分大小写的好处

//...
val array = arrayOf('x', 'Y', 'z')
if (test.matches(".*(${array.joinToString("|")})$".toRegex(RegexOption.IGNORE_CASE))) {
//...
尝试使用正则表达式

var test = "Some string Z"
val array = arrayOf('X', 'Y', 'Z')
if (test.matches(".*(${array.joinToString("|")})$".toRegex())) {
    test = test.dropLast(1) + 'A'
}
忽略区分大小写的好处

//...
val array = arrayOf('x', 'Y', 'z')
if (test.matches(".*(${array.joinToString("|")})$".toRegex(RegexOption.IGNORE_CASE))) {
//...

这回答了你的问题吗?请检查原始问题中的答案:我问了这个问题,这些都没有帮助我。如果你的问题是关于编译异常的,那应该在你问题的标题中。否则,这看起来像是您现有问题的重复,可能会被关闭。此代码在Android Studio中运行良好。这是否回答了您的问题?请检查原始问题中的答案:我问了这个问题,这些都没有帮助我。如果你的问题是关于编译异常的,那应该在你问题的标题中。否则,这看起来像是您现有问题的重复,可能会被关闭。此代码在Android Studio中运行良好。您是否指定了最后一个字符?如果最后一个字符包含array@Lλmbdλ这将只搜索最后一个字符。您是否指定了最后一个字符?如果最后一个字符包含array@Lλmbdλ这将只搜索最后一个字符