Kotlin字符串替换,包括分隔符

Kotlin字符串替换,包括分隔符,kotlin,Kotlin,我有一个常见的模式,我想对像abckey123这样的字符串进行操作,我想在键之前清除字符串,但也要删除键 有没有一种普遍接受的方法可以做到这一点?或者更好的方法是对所有字符串对象进行单一方法调用 想法: item.replaceBefore("key", "").replace("key", "") 它给出123如果您想获取键子字符串后的所有文本,可以使用substringAfter函数: val result = item.substringAfter("key") 此函数的第二个参数允许

我有一个常见的模式,我想对像abckey123这样的字符串进行操作,我想在键之前清除字符串,但也要删除键

有没有一种普遍接受的方法可以做到这一点?或者更好的方法是对所有字符串对象进行单一方法调用

想法:

item.replaceBefore("key", "").replace("key", "")

它给出123

如果您想获取键子字符串后的所有文本,可以使用substringAfter函数:

val result = item.substringAfter("key")
此函数的第二个参数允许指定在未找到分隔符时返回的内容。默认情况下,它返回整个字符串,但您可以传递空字符串,例如:

val result = item.substringAfter("key", "")

这种模式重复吗?如果你的消息来源是ABCKY123ABCKY123,你期待什么?删除第一个键123ABCKY123或所有键123'这实际上取决于您想要完成什么。。。如果有一种模式,那么一种方便的方法是将正则表达式与组一起使用,并提取这些组。。。e、 g..*?key\d+.toRegex.findalloyourinputstring.map{it.destructured}.forEach{firstPart,secondPart->println$firstPart->$secondPart}。。。在本例中,正则表达式将最后一个键之前的所有内容提取到组1中,并将最后一个键之后的每个数字提取到组2中。所以输入somekey123它会打印some->123,输入somekey123它会打印somekey->123。谢谢,这正是我想要的。使用substringAfterLast和before方法,这非常好。
val result = item.substringAfter("key")
val result = item.substringAfter("key", "")