package javal.util.test;
public class StackCheck {
private String input;
private CharStack stack;
private boolean isgood = true;
public StackCheck(String input) {
this.input = input;
}
public void check() {
int stackSize = input.length();
this.stack = new CharStack(stackSize);
int x=0;
for (char c : input.toCharArray()) {
switch (c) {
case '{':
case '[':
case '(':
stack.push(c);
break;
case '}':
case ']':
case ')':
if(!stack.isEmpty()) {
char chx = stack.pop();
if ((c == '}' && chx != '{') ||
(c == ']' && chx != '[') ||
(c == ')' && chx != '(')
) {
System.err.println("Error:" + c + "at "+ x );
isgood = false;
}
}else {
System.err.println("Error:" + c + "at "+ x );
isgood = false;
}
break;
default:
break;
}
x++;
}
if(!stack.isEmpty()) {
System.err.println("Error: missing right delimiter "+ stack.peek());
}else if(isgood){
System.out.println("it is very hello word!");
}
}
public static void main(String[] args) {
String test= "class { (fdfs )and [djske]}";
StackCheck sc = new StackCheck(test);
sc.check();
}
}
CharStack
Stack 简单应用 检查符号是否匹配
最新推荐文章于 2020-03-23 21:03:08 发布