首页 > Web开发 > 详细

1410. HTML 实体解析器

时间:2020-04-16 21:41:14      阅读:59      评论:0      收藏:0      [点我收藏+]

my code :

class Solution {
    public String entityParser(String text) {
        Stack<Integer> s=new Stack<>();
        Map<String ,String> m=new HashMap<>();
        m.put(""","\"");
        m.put("‘","\‘");
        m.put("&","&");
        m.put(">",">");
        m.put("<","<");
        m.put("⁄","/");
        String  outputans="";
        for(int i=0;i<text.length();i++){
            if(text.charAt(i)==‘&‘&&s.isEmpty()){

                s.push(i);
            }else if(text.charAt(i)==‘&‘&&!s.isEmpty()){
                s.clear();
            }else if(text.charAt(i)==‘;‘&&!s.isEmpty()){
                int loca=s.pop();
                String temp=text.substring(loca,i+1);
                String ans;

                if(m.get(temp)!=null){
                    ans=m.get(temp);
                    outputans+=ans;
                }else{//"&faflalfla;"的情况
                    outputans+=temp;
                }

            }else if(s.isEmpty()){
                outputans+=text.charAt(i);
            }

        }
        return outputans;
        
    }
}

 someone else‘s:

public String entityParser(String text) {
      return text
            .replaceAll(""", "\"")
            .replaceAll("‘", "‘")
            
            .replaceAll(">", ">")
            .replaceAll("<", "<")
            .replaceAll("⁄", "/")
        .replaceAll("&", "&");
}
 

更快速的方法:(replace() 方法 速度比replaceAll()的快  replace也是全部替换 但是replaceAll()是有关正则表达式的)

return text.replace(""", "\"").replace("‘", "‘").replace(">", ">")                 .replace("<", "<").replace("⁄", "/").replace("&", "&");

  

conclusion;

STUPID GUY!!! please make good use of API!!! 

 

1410. HTML 实体解析器

原文:https://www.cnblogs.com/jessekwok/p/12715948.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!