我目前正试图想出一个代码,该代码将扫描字符串 并检查每行上是否有偶数个打开和关闭括号。如果是这样,它会返回true。 (请原谅我在格式化不正确,但我不能让例子正确初具规模,除非我确定它的代码)试图获取代码来检查是否有括号
{} // The code would return true
{{}}
{}{}
{{{}{{}}}}
} // The code would return false
{}
}}{
{{{}{}
我试了一下,到目前为止:
public boolean bracketsMatch(String brackets)
{
int lb = 0;
int rb = 0;
int i = 0;
while (brackets.charAt(i) == '{' || brackets.charAt(i) == '}' || brackets.charAt(i) == '')
{
if (brackets.charAt(i) == '{')
{
lb += 1;
}
if (brackets.charAt(i) == '}')
{
rb += 1;
}
if (brackets.charAt(i) == '')
{
if (lb/rb == 2)
{
// Is it possible to get the code scan the next line to next line?
// need an extra statement here for ^^ before I can place the if statement below
if (bracket.charAt(i + 1) == '')
{
return true;
}
}
else
{
return false;
}
}
i++
}
}
我提前道歉对于任何有经验的程序员来说,这将是一场无效的噩梦。一般来说,我对编程相对来说比较陌生。我试图让代码检查左括号(lb)和右括号(rb)的数量。只要代码到达空字符串,它就会将lb除以rb。如果代码不等于2,代码将返回false。我在这段代码中可能有十多个错误,但我想知道是否有任何方法让代码进入下一行来扫描下一组括号。感谢您提前提供任何帮助。
编辑1:
public boolean bracketsMatch(String brackets)
{
int balance = 0;
for (int i = 0; i < brackets.length(); i++)
{
char value = brackets.charAt(i);
if (value == '{')
{
balance += 1;
}
else if (value == '}')
{
balance -= 1;
}
}
if (balance != 0)
{
return false;
}
else
{
return true;
}
}
第一个示例返回true,因为每行上都有偶数个括号。第二个可能有一个{},但大多数行的开放和闭合括号数量不等。 –
要验证括号是否平衡,您需要'lb == rb',而不是'lb/rb == 2'。而且这个代码不会编译,因为''''不是一个有效的字符文字。 –
在正常的括号内使用时,'{'必须在'}之前吗?换句话说,这条线应该是什么结果:'} {'?此外,你的行只包含括号,或者可以是,例如,“{ok}”? –