我试图在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;
}
答案 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