gpt4 book ai didi

java - 尝试替换文本时出现StringIndexOutOfBoundsException

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

我正在尝试替换.cfg文件中的文本。

我正在使用Gradle,所以实际上是Java和Groovy的混合。

这是我当前的代码。这应该捕获属性的第一行,添加\n以开始新行,然后输入我要导入文本的文件的内容(文本在下面):

String filename = "settings/code_cfg.cfg"
File f = new File(filename)
String text = f.getText()
String replace = "$1 \n" + text
dspaceCfgTxt = dspaceCfgTxt.replaceFirst(/(filter.plugins.*)/, replace) <!-- This is line 545

编辑:文本由多个多行属性组成,例如下面的一个:
filter.plugins =  property.sub.random.jibberish \
property.second.random \
property.lala

我从中导入文本的文件 code_cfg.cfg的内容如下:
a random property \

编辑:所以最终结果应该是这样的:
filter.plugins =  property.sub.random.jibberish \
a random property \
property.second.random \
property.lala

但是我尝试执行时遇到以下错误:
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: 28
at java_lang_String$replaceFirst.call(Unknown Source)
at build_mv9ue0gaar4db2nj1lt6j3olk$_run_closure35.doCall(/Users/user/build.gradle:545)
at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:485)
at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:469)
at org.gradle.api.internal.tasks.TaskStatusNagger$1.execute(TaskStatusNagger.java:78)
at org.gradle.api.internal.tasks.TaskStatusNagger$1.execute(TaskStatusNagger.java:74)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:64)
... 57 more

而且我不知道为什么。对于如何解决这个问题,有任何的建议吗?

最佳答案

这确实是一个Groovy问题。我发现的一个错误是"$1"是Groovy String插值法,它将寻找一个名为1的变量。相反,它必须是'$1'

关于java - 尝试替换文本时出现StringIndexOutOfBoundsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16942704/

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