string 匹配

wangdongcheng221 2008-12-02 08:06:41
java语言中 用栈实现一个字符串的匹配问题,如何解决,请教高手:
String str = "[{()}]";这种是匹配的,
String str = "[{()}][";这种是不匹配的,
...全文
231 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
mizukusa 2008-12-03
  • 打赏
  • 举报
回复
二楼说的很详细了,七楼的编码基本上也能实现你要的功能
rypgood 2008-12-03
  • 打赏
  • 举报
回复
我那个回答中打错了一个字,第5行的左改为右就行了。相信lz看得懂
lwlivy 2008-12-03
  • 打赏
  • 举报
回复
楼主想问的应该是检查括号是否匹配,也就是都成对
dongdeng2005 2008-12-03
  • 打赏
  • 举报
回复
初学者,搞了一个多小时才弄出来了.首先楼主给的题目太局限性了.可以这么说,类似[](){} {[()]}这样的字符串也就是匹配的,不管中间有多少空格.下面给出代码:
import java.util.*;


public class Pipei
{

public static void main(String[] args)
{
Stack s=new Stack();
String str1="{}{}[]() {([])}";
char[] ch=str1.toCharArray();
for(int k=0;k<ch.length;k++)
{
if(ch[k]==0)
ch[k]=ch[k+1];
}

int i=0;
for(i=0;i<ch.length;i++)
{
if((ch[i]=='(')||(ch[i]=='[')||(ch[i]=='{'))
{
s.push(ch[i]);
}
else if((ch[i]==')')&&(s.peek()==(Object)'('))
s.pop();
else if((ch[i]==']')&&(s.peek()==(Object)'['))
s.pop();
else if((ch[i]=='}')&&(s.peek()==(Object)'{'))
s.pop();
}
if(s.empty())
System.out.println("匹配!");
else
System.out.println("不匹配!");


}

}

}
myjava_024 2008-12-03
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 whmii 的回复:]
这个可以用栈解决的。2楼给的算法很详细,楼主加油,实现它。
[/Quote]
支持
wangzhehan1986 2008-12-03
  • 打赏
  • 举报
回复
同上
gg13921815036 2008-12-03
  • 打赏
  • 举报
回复
up
fiewfew 2008-12-03
  • 打赏
  • 举报
回复
学习了
鸿悯 2008-12-02
  • 打赏
  • 举报
回复
这个可以用栈解决的。2楼给的算法很详细,楼主加油,实现它。
shenjie1989 2008-12-02
  • 打赏
  • 举报
回复
第二个不对称
rypgood 2008-12-02
  • 打赏
  • 举报
回复
不知道你是不是检查括号匹配问题?如果是:
先把string变成stringbuffer
然后弄个栈
遇到左括号进栈
如果刚开始遇到左括号,返回不匹配,否则:
遇到右括号出栈,并且比较两个括号是否一样,如果不一样则返回不匹配
如果是则继续执行
最后检查栈是否为空,如果为空则返回匹配,否则返回不匹配
xiaolong19870717 2008-12-02
  • 打赏
  • 举报
回复
数据结构好多都有

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧