java 判断是否有分隔符_java 检测分隔符

该博客讨论了一个Java程序,用于检查输入字符串中的括号匹配。程序使用栈数据结构来跟踪左括号,并在遇到右括号时进行匹配。如果括号不匹配或栈为空,程序会报告错误。文章强调了栈的push和pop操作在处理分隔符平衡问题中的关键作用。
摘要由CSDN通过智能技术生成

恩,我要检测输入的分隔符,但是,在入栈的时候,top,应该是从-1加啊,为什么第一次入栈后,top从-1编程1了?importjava.util.*;publicclassbrackets2{publicstaticvoidmain(String[]...

恩,我要检测输入的分隔符,但是,在入栈的时候,top,应该是从-1加啊,为什么第一次入栈后,top从-1编程1了?

import java.util.*;

public class brackets2 {

public static void main(String[] args) {

Scanner in=new Scanner(System.in);

System.out.println("input:");

String getString=in.nextLine();

char[] getChar=getString.toCharArray();

stack2 sta2=new stack2(getChar.length);

check che=new check();

che.checks(getChar, sta2);

}

}

class stack2{

private int top;

private int maxsize;

private char[] stackarray2;

public stack2(int size){

maxsize=size;

stackarray2=new char[size];

}

public void push(char c){

stackarray2[++top]=c;

}

public char pop(){

return stackarray2[top--];

}

public boolean isempty(){

return top==0;

}

public int gettop(){

return top;

}

}

class check{

public void checks(char[] chars,stack2 sta){

for(char c:chars)

{

char ch=c;

switch(ch)

{

case '(':

case '[':

case '{':

sta.push(ch);

System.out.println(" "+ch+ " "+sta.gettop());

break;

case ')':

case '}':

case ']':

if(!sta.isempty())

{

char chx=sta.pop();

if((ch==')')&&(chx!='(')

||(ch==']')&&(chx!='[')

||(ch=='}')&&(chx!='{'))

System.out.println("Error:"+ch);

break;

}

else System.out.println("Error: "+ch);

default:

break;

}

}

if(!sta.isempty())

System.out.println("missing right token ");

}

}

展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值