Java中如何处理带双引号的字符串

    Java中char是用' '单引号,字符串用" "包起来即可。但是今天恰逢遇到要用Java执行js代码,因为两种编程语言间格式的差异,让我不得不处理字符串中带双引号的问题。Python中有''' '''三引号,实现多行注释,迫切希望Java中有一天能更新上此特性。话不多说,看看代码吧。

处理前:

运行报错:

Multiple markers at this line
    - Invalid character constant
    - Syntax error on tokens, ( expected instead
    - Syntax error, insert ";" to complete Statement
    - Syntax error on tokens, ( expected instead
    - Syntax error on token "");aaa=aaa.replace("", invalid 
     AssignmentOperator

查了下,字符串中的双引号需要加" \ "进行转义。

加转义 \ 处理后:

  public String challenge(String resp){
        resp = resp.substring(8);
        String tmp[] = resp.split("</script");
        resp = tmp[0];
        resp = resp.replace("eval(y.replace", "var aaa=(y.replace");
        resp = resp + "aaa=aaa.replace(\"h=document.createElement('div');\",\"\");aaa=aaa.replace(\"h.innerHTML='<a href=\\\'/\\\'\",\"\");\n" +
                "aaa=aaa.replace(\">x</a>';\",'');aaa=aaa.replace(\"h=h.firstChild.href;\",\"h='http://www.gsxt.gov.cn/';\");aaa=aaa.replace(\"while(window._phantom||window.__phantomas){};\",\"\");bbb=aaa.split(\"setTimeout\");\n" +
                "    aaa=bbb[0]+\"return dc;}}\";\n" +
                "    aaa=aaa.replace(\"var l=\",\"{fa:\");\n" +
                "  var ffa=eval(\"(\"+aaa+\")\");\n" +
                "    var fffa=ffa.fa();";

编译器没有提示错误:

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值