判断字符串中符号是否成对出现

	public static void main(String[] args) {
		//利用堆棧的概念,先进后出的原则判断对应的符号是否成对出现
	    //定义一个字符串和栈
		String s="abc([{adsf}]s)df";
		Stack ss=new Stack();
		boolean flag=true;
		char c;//定义一个char 遍历字符串的时候接收
		//依次遍历字符串,取出符号放入栈中
		for (int i = 0; i < s.length(); i++) {
			c=s.charAt(i);
			if (c=='('||c=='['||c=='{') {
				ss.push(c);//把符号压入到栈中
			}
			if (c==')'||c==']'||c=='}') {
				if (ss.isEmpty()) {
					flag=false;//栈是空的代表符号是成对出现的
					break;
				}else {
					//ss.peek()是调用栈顶部的对象 ss.pop()是一处堆栈顶部的对象
					if ((c==')'&&ss.peek()==(Object)'(')||(c==']'&&ss.peek()==(Object)'[')||(c=='}'&&ss.peek()==(Object)'{')) {
						ss.pop();//出栈
					} else {
	                   flag=false;
	                   break;
					}
				}
			}
			
		}
			if (!ss.isEmpty()) {
				flag=false;
			}
			if (flag) {
				System.out.println("该字符创串号配对,即符号成对出现");
			} else {
				System.out.println("该字符创串号不配对,即符号不成对出现");
			}
		}
	


版权声明:本文为catch_li原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。