gpt4 book ai didi

java - 如何将几个 "Sqrt[some text inside]"变成几个 Sqrt(里面有一些文字),我的意思是从 [] 变成 ()

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:22:48 27 4
gpt4 key购买 nike

我得到了如下表达式(Sqrt[XXX] 的数量未知)

Sqrt[A+B] + Sqrt[Min[A,B]] * Min[Sqrt[C],D]

我想把所有的 Sqrt[XXX] 变成 Sqrt(XXX) ,我想替换 [] 的括号Sqrt 放入() 括号

所以上面的例子看起来像

Sqrt(A+B) + Sqrt(Min[A,B]) * Min[Sqrt(C),D]

我不想“伤害”表达式中的其他 [] 括号(比如 Min 旁边的括号)

我怎样才能用正则表达式做到这一点?

最佳答案

您可以对字符串中的字符使用迭代来完成此操作。首先查找 Sqrt[ 的索引,然后查找匹配的右括号。

下面是一些示例代码:

final String s = "Sqrt[A+B] + Sqrt[Min[A,B]] * Min[Sqrt[C],D]";
final char[] charArray = s.toCharArray();

int index = s.indexOf("Sqrt[");
while (index != -1) {
final int open = index + 4;
charArray[open] = '(';

// look for closing bracket
int close;
int matching = 0;
for (close = open + 1; close < charArray.length; close++) {
char c = charArray[close];
if (c == ']') {
if (matching == 0) {
break;
}
matching--;
} else if (c == '[') {
matching++;
}
}
charArray[close] = ')';
index = s.indexOf("Sqrt[", index + 1);
}
System.out.println(new String(charArray));

我没有正确测试它,所以请这样做。

关于java - 如何将几个 "Sqrt[some text inside]"变成几个 Sqrt(里面有一些文字),我的意思是从 [] 变成 (),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8562591/

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