gpt4 book ai didi

Java:替换字符串(用括号!)

转载 作者:行者123 更新时间:2023-11-30 03:19:39 36 4
gpt4 key购买 nike

我目前正在开发一个小程序:

  • 读取 Excel 文档(.xlsx,使用 SmartXLS)并将内容保存在长字符串中(每个单元格占一个新行)
  • 读取配置文件,然后根据配置文件中的示例转换长字符串中的子字符串(replaceAll)和/或添加前缀
  • 将最终的字符串输出到txt文件中

转换示例:a b c(每个部分之间有一个制表符),例如"its[ ]bracket"-> "itsabracket"与

tagname [ ] a

在配置文件中(“[ ]”被替换为“a”)。 a 是告诉我哪些列被转换的标签,b 是原始子字符串,c 是 b 必须转换成的字符串。

问题是:我已经知道配置文件中将使用方括号(圆括号、大括号和方括号),但我不知道它是否只是单个括号或什至更长的短语(括号之间有字母、数字、..)。

String s = s.replaceAll(convert[i].original, convert[i].new);

for "[ ]"-> "a"将 [a] 写入输出文件,如果我首先执行以下操作,当它读取配置文件并将所有内容保存在“convert”数组中时,它会抛出 PatternSyntaxException ( “索引 0 附近的未封闭字符类”):

if(ss.contains("[")) {
ss = ss.replaceAll("[", "\\[");
} else if(ss.contains("]")) {
ss = s.replaceAll("]", "\\]");
}

if(ss.contains("\\[")) {
ss = ss.replaceAll("\\[", "\\\\[");
} else if(ss.contains("\\]")) {
ss = s.replaceAll("\\]", "\\\\]");
}

它再次输出“[a]”。

有什么想法吗?我怎样才能做到这一点?

最佳答案

使用String.replace与replaceAll不同,它接受字符序列。您不必对[]等使用转义字符。

 String s = s.replace(convert[i].original, convert[i].new);

输入
它的[][]]括号
标记名 [ ] a

输出

itsaa]括号

希望这就是您想要使用代码实现的目标。

关于Java:替换字符串(用括号!),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31652097/

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