当前位置: 代码迷 >> J2SE >> 急求java高手帮忙啊解决方法
  详细解决方案

急求java高手帮忙啊解决方法

热度:149   发布时间:2016-04-24 02:25:20.0
急,求java高手帮忙啊
有一字符串格式如下:(A(B)(C(D)(E))F) 字符串中的括号成对出现,写一java函数取出第N(以左括号出现的顺序来索引)对括号里的内容。

------解决方案--------------------
找第n个左括号的下边
这个是答案
------解决方案--------------------
上面的蓝字是链接啊
------解决方案--------------------
Java code
public class Csdn1 {    public static void main(String[] args) {        String str = "(A(B)(C(D)(E))F)";        System.out.println(getContent(5, str));    }        public static String getContent(int n, String str) {                int start = -1, end = 0;        char[] arr = str.toCharArray();        int count = 0, j = 0;                for (int i = 0; i < arr.length; i++) {            if (arr[i] == '(') {                count++;                if (count == n) {                    start = i;//找到,记录开始位置                    j = 0; // 开始位置重置                }                if (i >= start) {                    j++; // 左( ++                }            }                        if (arr[i] == ')') {                                if (i >= start) {        //有开始位置才开始匹配结束                    j--; // 右( --                }                if (j == 0) {         //左右括号匹配完成后记录结束位置并跳出循环                    if (start == -1) {                        System.out.println("第" + n + "个元素不存在!");                    } else {                        end = i + 1;                        return str.substring(start, end);                    }                }            }        }        return "";    }}
  相关解决方案