在给定的字符串之间提取子字符串

26
给定以下字符串:be_de=Interessant für Dich; be_fr=Intéressant pour toi; 在Kotlin中提取给定语言环境的子字符串的最佳方法是什么?例如,我给定了语言环境be_fr,我希望结果为Intéressant pour toi。该字符串始终位于语言环境后面,后跟一个=和一个; 可能会有更多带有字符串的语言环境,并且要提取的值的位置总是不同的。
当然,我可以创建一个从我的语言环境后面的第一个索引开始的子字符串,然后搜索分号的第一个索引,但我认为还有一种更优雅的方式,例如使用removeSurrounding,但我无法立即想到。

你是否考虑过使用不同的编码方式,比如JSON或.properties文件?这将更适合这种类型的用途。 - Lionel Briand
请查看此YouTrack问题 - Mahozad
1个回答

75

我认为removeSurrounding在这里不适用,因为你只能通过知道整个prefixsuffix才能使用它来删除文本。

我会选择这个选项,因为它很容易阅读:

val result = data.substringAfter("be_fr=").substringBefore(';')

实际上它可以是 val result = data.substringAfter("be_fr=", "").substringBefore(";", "") - 空字符串意味着如果 delimiter,例如 be_fr=,缺失,则结果将为空字符串。否则,您将得到原始字符串,这对我来说是惊人的行为。 - ZZ 5

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接