gpt4 book ai didi

kotlin - 卡在给定数组的逻辑上

转载 作者:行者123 更新时间:2023-12-04 08:03:13 24 4
gpt4 key购买 nike

我有这个代码:

val string = "<p></p>this<p></p>"
val arrs = listOf("<p data-id=\"1\"></p>", "<p data-id=\"2\"></p>")
var replacedString = ""
arrs.forEach {
val pTag = "<p></p>"
replacedString = string.replace(pTag, it) // <-- I know this is the culprit, but I got stuck. don't know what to do anymore
}
println(replacedString)

它应该显示 <p data-id="1"></p>this<p data-id="2"></p> ,但它显示 <p data-id="2"></p>this<p data-id="2"></p>反而
注意 data-id值根据列表递增
主要问题是 string变量和 listOf将是动态的。
例如:
val string = "<p></p>this<p></p>that<p></p>"
val arrs = listOf("<p data-id=\"1\"></p>", "<p data-id=\"2\"></p>", "<p data-id=\"3\"></p>")
或者
val string = "<p></p>this<p></p><p></p>that"
val arrs = listOf("<p data-id=\"1\"></p>", "<p data-id=\"2\"></p>", "<p data-id=\"3\"></p>")
等等等等

最佳答案

有几个问题,

  • .replace将替换 全部 字符串中出现的次数。这可能是您不想要的。也许你需要使用 replaceFirst
  • replacedStringforEach 的每次传递中都会被覆盖.因此,它只会有最后一次迭代的值,这是您观察到的结果。理想情况下使用 StringBuilder在这里并附加 replaceString每次通过的结果。

  • 所以实际上,
    var replacedString = string 
    arrs.forEach {
    val pTag = "<p></p>"
    replacedString = replacedString.replaceFirst(pTag, it))
    }
    println(replacedString)
    希望能让你继续前进

    关于kotlin - 卡在给定数组的逻辑上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66345596/

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