检查索引是否在括号内

时间:2015-11-15 21:06:15

标签: java

我试图在Java中创建一个方法来检查括号内是否包含String的索引。目前我只是检查)(是否排在第一位,但它对嵌套括号不起作用。

private static boolean inParentheses(String str, int index) {
    int nextOpen = str.indexOf('(', index);
    int nextClose = str.indexOf(')', index);
    return nextClose < nextOpen && nextOpen != -1 || nextOpen == -1 && nextClose != -1;
}

2 个答案:

答案 0 :(得分:0)

所以你想首先检查字符串的第一个字符是什么。假设你有字符串ipwnmice,你想知道它的前面是否有字符(或字符)

String yourUsername = "ipwnmice"; 
char first = yourUsername.charAt(0);
System.out.println(first);

<强>输出:

i

现在,如果您想查看第一个字符是(还是),只需在代码周围添加if语句!

 String parenthasis = "(Hello)"
 char first = parenthasis.charAt(0);

if(first.equals("()){
//CONTAINS ( OR ) AS FIRST CHARACTER
} else{
//DOESNT CONTAIN ( OR ) AS FIRST CHARACTER
}

它可能不在字符串的开头:

使用.contains()方法。

if(String.contains( ( || ) ){

}

就是这样。获取字符串第一个字母的字符,并检查它是否包含()。如果您发现此答案有用,请将其标记为最佳答案。如果您需要更多帮助,请随时提出,我很乐意提供帮助。

{Rich}

答案 1 :(得分:-1)

如果您可以安全地假设括号全部正确关闭,那么它相当于计算索引一侧的开括号和闭括号的数量。如果他们相等,你就不在括号内,否则你就是。当你的索引引用括号时,要小心答案。

int open_par = 0;
for(int i=index;i--!=0;){
   if(str.charAt(i)=='(')
      open_par++; //count open parenthesis
   if(str.charAt(i)==')')
      open_par--; //count closed parenthesis
}
return open_par>0; //if open parenthesis exceeds closed parenthesis