-2
그래서 사용자가 .java 파일을 입력하고 파일의 대괄호, 괄호 및 중괄호가 균형을 이루고 있는지 확인하고 있습니다. 그리고 "balanced"를 출력하고 "balanced"가 아닌 경우 코드를 모두 작성했지만 stackBalance 메소드가 제대로 검사하지 않습니다. 어떤 경기가 있은 후에도 "균형"결과를 반환한다고 들었습니다. 구문 분석 할 내용이없고 스택이 비어 있지 않을 때까지 루프를 계속 진행해야합니다. 기본적으로 내 프로그램은 (전체 스택을 검사하기 전에) "균형 잡힌"것을 너무 빨리 결정합니다. 하지만 난 엉망진창 만보고있는 중이다. 빠른 수정을 부탁드립니다! 여기 코드는 다음과 같습니다괄호 검사기 구현 스택
는public static String stackBalance(Scanner in){
if(!in.hasNext()){
System.out.println("Nothing to see");
}
else{
stack<Character> stack = new stack<Character>();
Boolean istrue = true;
String expr = in.next();
for (int i = 0; i < expr.length(); i++)
{
char c = expr.charAt(i);
if (c == '[' || c == '(' || c == '{')
{
stack.push(c);
}
if (c == '}' || c == ')' || c == ']')
{
if (stack.isEmpty())
istrue = false;
char last = stack.peek();
if (c == '}' && last == '{' || c == ')' && last == '(' || c == ']' && last == '[')
stack.pop();
else
istrue = false;
}
}
if (istrue)
{
System.out.println("File is balanced");
}
else
System.out.println("File is not balanced");
}
return null;
}
}
읽기 쉽지 않은 스타일. 디버거를 빨리 돌리면 여기에 묻는 것보다 빨리 잘못 읽었을 것입니다. – duffymo
불균형 대괄호 또는 괄호를 처음 감지 할 때 검사를 계속할 필요가 없습니다. 또한 'istrue'와 같은 이름은 실제로 설명 적이 지 않습니다. 실제로 변수가 사용되는 의미와 그 의미를 나타내지는 않습니다. –