如果字符串包含在括号中,则删除它们

Jos*_*ine 2 java

我正在尝试编写一个接受输入的函数,检查它是否将“[”作为第一个字符,“]”作为最后一个字符,如果有,则将其删除。字符串中可能有更多的括号,如果是这种情况,那么我需要打印一个错误语句。在我看过的任何地方,如果只是两个括号,我都看到了如何做到这一点的例子,但我需要检查是否还有更多,这就是我感到困惑的地方。

我看过使用的例子regex,我知道如果我能找到一个只有两个括号在外面的字符串,我可以用substring它来修剪它,但我不知道如何检查字符串的实例括号而不删除所有这些。

帮助将不胜感激。谢谢。

Cru*_*her 5

if(str.chatAt(0) == '[' && str.charAt(str.length()-1) == ']') //str.matches("\\[.*\\]")
{
    str = str.substring(1, str.length() - 1);
}
if(str.contains("[") || str.contains("]")) //str.matches(".*[\\[\\]].*")
{
    //throw your error
}
Run Code Online (Sandbox Code Playgroud)

在 if 语句旁边发布了潜在的正则表达式解决方案。警告:在正则表达式方面不是最好的,所以它们可能不正确。

正如@Ingo 在评论中指出的那样,str.charAt(0)将在空字符串上失败。