从括号JAVA获取子字符串

时间:2016-11-14 13:24:37

标签: java

请不要提供完整的解决方案!

  
    

给定一个包含一对括号的字符串,递归计算一个仅由括号和它们组成的新字符串     内容,所以" xyz(abc)123"收益率"(abc)"。

  
     

parenBit(" xyz(abc)123")→"(abc)"

     

parenBit(" x(你好)")→"(你好)"

     

parenBit("(xy)1")→"(xy)"

我的解决方案不起作用

public String parenBit(String str) {
        char c;
        int start = 0;
        int end = 0;
        for(int i=0; i < str.length(); i++){
            c = str.charAt(i);
            if(c == '('){
                start = i;

            } if(c == '('){
                end = i;
                return str.substring(start, end);
            }

        }

return "andrew";
}

它不打印任何东西。为什么呢?

2 个答案:

答案 0 :(得分:0)

我认为你的第二个条件是错误的。你正在检查(不是)

答案 1 :(得分:0)

public static String parenBit(String str) {
    char c;
    int start = 0;
    int end = 0;
    for(int i=0; i < str.length(); i++){
        c = str.charAt(i);
        if(c == '('){
            start = i;

        } if(c == ')'){
            end = i;
            return str.substring(start + 1, end);
        }

    }

    return "";
}

更改说明:

首先,将第二个if更改为if (c == ')')以检查右括号。其次,start变量是一个,所以我加了1。最后,如果没有找到括号,我认为你不应该返回andrew。所以我把它改成了一个空字符串。