📄 teststack.java
字号:
package Array;
import java.io.IOException;
import MyLib.MyApp;
public class testStack {
public static void main(String args[]) throws IOException{
MyApp app=new MyApp();
String in;
System.out.println("enter String");
in=app.readString();
while(in!=null && !in.equals("exit")){
System.out.println("enter String");
StringUser st=new StringUser(in);
st.dov();
if(st.isCorrect)
System.out.println("correct entered");
in=app.readString();
}
}
}
//=======================================================================
class StringUser{
String input;
String output;
boolean isCorrect;
public StringUser(String in){
input=in;
}
public void dov(){
isCorrect=true;
int stackSize=input.length();
MyStack stack=new MyStack(stackSize);
for(int i=0;i<stackSize;i++){
String errMessage=" ";
char ch= input.charAt(i);
//---------------------------------------------
switch(ch){
case '{' :
case '[' :
case '(' : // {[( 为入 stack 字符
stack.pushStack(ch);
break;
case '}':
case ']':
case ')':
//============================================
if(!stack.stackIsEmpty()){
char chx=stack.popStack();
if((ch=='}')&&(chx!='{')||
(ch==']')&&(chx!='[')||
(ch==')')&&(chx!='(')){
//---------------------------
switch(chx){
case '{':
errMessage="the correct input is '}'";
break;
case '[':
errMessage="the correct input is ']'";
break;
case '(':
errMessage="the correct input is ')'";
break;
}
//---------------------------
System.out.println("error at "+ i+" "+ch);
System.out.println(errMessage);
isCorrect=false;
}
}else{
switch(ch){
case '}':
errMessage="{";
break;
case ']':
errMessage="[";
break;
case ')':
errMessage="(";
break;
}
System.out.println("error at"+ i+" '"+errMessage+"' not input before ");
isCorrect=false;
}
break;
//===============================================
default :
break;
}
//-------------------------------------------------------------
/*
output=" ";
while(!stack.stackIsEmpty()){
output=output+stack.popStack();
}
return output;*/
}
}
}
//======================================================================
class MyStack{//堆栈结构
int stackMax;
int stacktop;
char[] myStack;
public MyStack(int maxSize){
myStack=new char[maxSize];
stacktop=-1;
}
public void pushStack(char pushUnit){
myStack[++stacktop]=pushUnit;
}
public char popStack(){
return myStack[stacktop--];
}
public char peek(){
return myStack[stacktop];
}
public boolean stackIsEmpty(){
if(stacktop==-1)
return true;
else
return false;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -