繁体   English   中英

替换字符串中的子字符串

[英]Replace substring from a string

我有这串

String str=lookup('PRODUCT','LKP1','LKP_TAB1.ID')||('A'='B')-lookup('PRODUCT','LKP2','LKP_TAB1.ID')||'CON.ID'

这只是一个示例,在实际情况下,查找表达式可以在字符串中的任意位置和任意次数存在。 此外,字符串还可以具有其他几个'('和')'。 我需要将字符串转换为

=lookup('PRODUCT','LKP1','LKP_TAB1.ID',123)||('A'='B')-lookup('PRODUCT','LKP2','LKP_TAB1.ID',123)||'CON.ID'

这意味着在查找时我需要将')'替换为',123)'。 但是,如果它不适合查找,那么我不想替换它。

可以在Java中完成吗?

尝试:

str = str.replaceAll("(lookup\\([^)]*)\\)","$1,123)");

看到它@工作

我认为这是太多的工作和聪明,不值得。

我会很懒惰,不得不最终静态实例,每个案例一个String。 然后,我将编写一个if测试来决定要使用哪个测试。

为什么所有这些每次都起作用? 该操作将执行多少次? 如果只有两个答案,请把它们拼出来。 我认为它将更具可读性,并减少CPU负载。

当然,

可以使用任何语言(Java)完成此操作。

这个怎么样 :

将字符串标记为')'。

然后,如果令牌包含单词“ lookup”,则将“)”的最后一个实例替换为“ 123)”。

我认为这可能会奏效,虽然很难看,但看起来还不错。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM