zoukankan      html  css  js  c++  java
  • java.util.UnknownFormatConversionException: Conversion = ''';

    今天在测试一个新的项目,在执行sql查询报表的时候。由于我的sql中带有%,导致在输出日志时报错“java.util.UnknownFormatConversionException: Conversion = '''。
    经过分析发现:Java中如何让String.format正常处理%

    1,代码示例:

    System.out.println(String.format("where  name like % %s","Zhang san"));,

    2,执行时报错:

    java.util.IllegalFormatFlagsException

    3,解决办法1:

    使用%%对%进行转义

    代码示例:

    System.out.println(String.format("where  name like %% %s","Zhang san"));

    正确执行时的输出结果:

    where  name like % Zhang san

    解决办法2:

    System.out.println(String.format("where  name like %s %s","%","Zhang san"));

    正确执行时的输出结果:

    where  name like % Zhang san

    其实不用看Conversion = ‘Y’,什么Conversion = ‘I’,Conversion = ‘F’ … 都是这个错误造成的。

    第一次遇到这个错误,有点蒙,还查了很久,最后发现是:在格式化输出时,输出字符串的内容不能含有%。如果要输出%,必须进行转义,也就是使用%%代替%

    但是我又不能直接修改sql,所以我采用的方式是在输出日志时把%替换成%%

    举例:
    我的sql是:String sql=“SELECT DATE_FORMAT(date(now()), ‘%Y%m%d%H%i’) AS time_id”

    我的日志输出则应该是:Logutil.trace(“我是日志:”+sql.replace("%", “%%”));

    解决办法其实很简单,这也是怪我基础知识不扎实,故记之,以后万万不可犯同样的错误。

     

  • 相关阅读:
    【kafka学习笔记】PHP接入kafka
    小白要怎么变成大神
    ab测试
    安装matlab出现ERROR8错误
    关于uint8_t / uint16_t / uint32_t /uint64_t 是什么数据类型
    朴素贝叶斯文本分类
    第10组 Beta冲刺 (2/5)(组长)
    第10组 每周小结 (1/3)(组长)
    第10组 Beta冲刺 (3/5)(组长)
    第10组 Beta冲刺 (5/5)(组长)
  • 原文地址:https://www.cnblogs.com/zhangliang88/p/10621167.html
Copyright © 2011-2022 走看看