正文

自动机2006-05-24 09:23:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/ggbm/14766.html

分享到:

        今天在网上逛的时候,看到一段识别java注释代码的自动机,所以跟大家分享!注意支持原创!!!!!!

class CommentAutoMata{
    final int start=0;
    final int one=1;
    final int two=2;
    final int three=3;
    final int finalState=4;
    final int five=5;
    final int six=6;
    public List getCommentList(String s){
        ArrayList ret=new ArrayList();
        int begin=-1;     
        int curState=start;
        for(int i=0;i<s.length();i++){
            char c=s.charAt(i);
            switch(curState){
            case(start):
                if(c=='/'){
                    begin=i;
                    curState=one;
                }
                else if(c=='"'){
                    //识别字符出
                    curState=5;
                }
                break;
            case(one):
                if(c=='*') curState=two;
                else curState=start;           
                break;
            case(two):
                if(c=='*') curState=three;
                break;
            case(three):
                if(c=='/'){
                    curState=finalState;
                     //eat
                    ret.add(s.substring(begin,i+1));
                    //reset;
                    curState=start;
                    begin=-1;
                }
                else curState=two;
                break;
            case(five):
                if(c=='"') curState=start;
                else if(c=='\\')curState=six;
                break;
            case(six):
                curState=five;
                break;
              
            }
        }
       
        return ret;
    }
}

阅读(2062) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册