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

时间:2013-10-08 20:42:03

标签: java

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

我见过使用regex的例子,我知道如果我能在外面找到只有两个括号的字符串,我可以使用substring修剪它,但我可以找不到如何检查括号实例的字符串而不重新编号。

非常感谢帮助。感谢。

3 个答案:

答案 0 :(得分:3)

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
}

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

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

答案 1 :(得分:0)

您可以使用String.charAt(int)来执行此操作: http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String.html#charAt%28int%29

答案 2 :(得分:0)

由于您声称知道要修剪前导括号和尾随括号,所以听起来缺少的链接是.contains()类上的String方法。

if (myString.contains("]") || myString.contains("["))
    throw new Exception("myString contains invalid brackets");