java的括号匹配程序
2014-07-21 20:33
369 查看
利用栈进行的括号匹配程序
package zf;
import java.awt.image.BufferedImage;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.ObjectInputStream.GetField;
public class fourth {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
String input;
while(true)
{
System.out.println("Error:missing right delimiter!");
System.out.flush();
input = getString();
if(input.equals(""))
break;
BracketChecker theck = new BracketChecker(input);
theck.check();
}
}
private static String getString() throws IOException {
// TODO Auto-generated method stub
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
String s = br.readLine();
return s;
//return null;
}
}
class stack
{
private int maxsize;
private char [] stackarray;
private int top;
public stack(int s)
{
maxsize = s;
stackarray = new char[maxsize];
top = -1;
}
public void push(char c)
{
stackarray[++top] = c;
}
public char pop()
{
return stackarray[top--];
}
public char peep()
{
return stackarray[top];
}
public boolean isEmpty()
{
return (top==-1);
}
public boolean isFull()
{
return top==maxsize-1;
}
}
class BracketChecker
{
private String input;
public BracketChecker(String in)
{
input = in;
}
public void check()
{
int stacksize = input.length();
stack stk = new stack(stacksize);
for(int j=0;j<input.length();j++)
{
char ch = input.charAt(j);
switch(ch)
{
case '{':
case '[':
case '(':
stk.push(ch);
break;
case '}':
case ']':
case ')':
if(!stk.isEmpty())
{
char chx = stk.pop();
if((ch=='}'&&chx!='{')||(ch==']'&&chx!='[')
||(ch==')'&&chx!='('))
{
System.out.println("Error!"+ch+"at"+j);
}
}
else
{
System.out.println("Error!"+ch+"at"+j);
}
break;
default:
break;
}
}
if(!stk.isEmpty())
{
System.out.println("Error:missing right delimiter!");
}
}
}
package zf;
import java.awt.image.BufferedImage;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.ObjectInputStream.GetField;
public class fourth {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
String input;
while(true)
{
System.out.println("Error:missing right delimiter!");
System.out.flush();
input = getString();
if(input.equals(""))
break;
BracketChecker theck = new BracketChecker(input);
theck.check();
}
}
private static String getString() throws IOException {
// TODO Auto-generated method stub
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
String s = br.readLine();
return s;
//return null;
}
}
class stack
{
private int maxsize;
private char [] stackarray;
private int top;
public stack(int s)
{
maxsize = s;
stackarray = new char[maxsize];
top = -1;
}
public void push(char c)
{
stackarray[++top] = c;
}
public char pop()
{
return stackarray[top--];
}
public char peep()
{
return stackarray[top];
}
public boolean isEmpty()
{
return (top==-1);
}
public boolean isFull()
{
return top==maxsize-1;
}
}
class BracketChecker
{
private String input;
public BracketChecker(String in)
{
input = in;
}
public void check()
{
int stacksize = input.length();
stack stk = new stack(stacksize);
for(int j=0;j<input.length();j++)
{
char ch = input.charAt(j);
switch(ch)
{
case '{':
case '[':
case '(':
stk.push(ch);
break;
case '}':
case ']':
case ')':
if(!stk.isEmpty())
{
char chx = stk.pop();
if((ch=='}'&&chx!='{')||(ch==']'&&chx!='[')
||(ch==')'&&chx!='('))
{
System.out.println("Error!"+ch+"at"+j);
}
}
else
{
System.out.println("Error!"+ch+"at"+j);
}
break;
default:
break;
}
}
if(!stk.isEmpty())
{
System.out.println("Error:missing right delimiter!");
}
}
}
相关文章推荐
- Java程序练习-括号匹配
- Java程序练习-括号匹配
- 检测程序中的括号是否匹配
- java括号匹配算法
- [原]NYOJ-括号匹配-2(java)
- java--括号匹配
- Java 括号匹配问题
- 括号匹配程序
- java实现用栈解决一个串中的括号是否匹配
- NYOJ-括号匹配-2(java)
- java--一道简单的括号匹配问题
- java括号匹配
- 栈的顺序实现以及括号匹配判断程序
- java堆栈(Deque双向队列)应用之括号匹配
- [原]NYOJ-括号匹配-2(java)
- 括号匹配程序
- 检测程序中的括号是否匹配
- 如何检测使用Qt Creator制作的程序中的括号是否匹配
- 括号匹配Java版
- java括号匹配算法