gpt4 book ai didi

java - 使用java从字符串中仅删除嵌套的大括号

转载 作者:行者123 更新时间:2023-12-01 12:57:07 30 4
gpt4 key购买 nike

我有一个任务,其中消息中有嵌套的大括号。我的动机是只删除最里面的大括号,消息的其余部分保持不变。字符串消息的示例如下:

enter code here Input :  {4:{CLIENT ACCOUNT} :-}
Output: {4: CLIENT ACCOUNT :-}

所以基本上我们需要确保删除最里面的大括号,其余内容保持不变。如何去做?

我能够使用以下伪代码删除一级大括号:

enter code here
String str ="{CLIENT ACCOUNT}";
String regex = "(\\{|\\})";
str = str.replaceAll(regex, "");
System.out.println("Formatted String is--"+str);

但我不知道如何使用正则表达式来忽略第一级大括号。任何帮助将不胜感激。

最佳答案

我不知道如何使用 java 正则表达式来做到这一点,但你可以这样做:

String str = "someContent";
String newStr = "";
int level = 0;
for (int i = 0; i < str.length(); ++i){
if (str.charAt(i) == '{'){
if (level == 0) //check before incrementing
newStr += "{";
level++;
} else if (str.charAt(i) == '}'){
level--;
if (level == 0) //check after incrementing
newStr += "}";
} else {
newStr += str.charAt(i);
}
}

return newStr;

您基本上会遍历字符串中的每个字符,并记住您已经看到了多少个“{”和“}”。然后,只有当净计数为零(或最外面的括号)时,才将它们打印出来

关于java - 使用java从字符串中仅删除嵌套的大括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23787534/

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