gpt4 book ai didi

android - 从 Kotlin 中的字符串列表中删除单词

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:33:42 26 4
gpt4 key购买 nike

我有一个可变的字符串列表,我试图从每个字符串中删除一个词。问题是我不相信这个词会从每一行中删除。

    for (item in stringLines) {

when {

item.contains("SUMMARY") -> eventLines.add(item)
item.contains("DTSTART") -> startDateLines.add(item)
item.contains("DTEND") -> endDateLines.add(item)
//item.contains("URL:") -> locationLines.add(item)
//item.contains("CATEGORIES") -> categoriesLines.add(item)
}

}

for (item in eventLines) {

when{
item.contains("SUMMARY") -> item.removePrefix("SUMMARY")
}

}

字符串是

SUMMARY WINTER FORMAL

我需要

WINTER FORMAL

但无论出于何种原因,它都没有出现。我知道如何在 java 中执行此操作,但我不知道如何在 Kotlin 中执行此操作,而且我找不到任何能够完成此操作的函数。我错过了什么?

最佳答案

removePrefix 仅当字符串的特定部分是前缀时才删除该部分。显然,这不是你的情况。您可以执行 splitfilterjoin 序列来产生您预期的结果。

println("SUMMARY WINTER FORMAL".split(" ").filter { it != "SUMMARY" }.joinToString(" ")) 
//output : "WINTER FORMAL"

但是如果你有多个连续的空格,它们将在输出中变成一个空格。如果“SUMMARY”没有被空格包围,则此方法也不起作用,例如“SUMMARYWINTERFORMAL”不会改变。

您可以通过将其替换为空字符串来删除部分字符串,但请注意,这将保留所有周围的字符,包括周围的空格。

println("SUMMARY WINTER FORMAL".replace("SUMMARY",""))
//output : " WINTER FORMAL"

注意“WINTER”前面有一个空格

如果您不想包含空格,可以使用正则表达式:

println("SUMMARY WINTER FORMAL".replace("\\s*SUMMARY\\s*".toRegex(),""))
//output : "WINTER FORMAL"
println("SUMMARYWINTERFORMAL".replace("\\s*SUMMARY\\s*".toRegex(),""))
//output : "WINTERFORMAL"
println(" SUMMARY WINTER FORMAL".replace("\\s*SUMMARY\\s*".toRegex(),""))
//output : "WINTER FORMAL"

您可以进一步修改正则表达式以更好地适应您的用例。

关于android - 从 Kotlin 中的字符串列表中删除单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55466795/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com