日期:2014-05-20 浏览次数:20855 次
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 ""; } }