• java中用MessageFormat格式化json字符串用占位符时出现的问题can't parse argument number


    在MessageFormat.format方法中组装jason数据字符串:{code:"w1",des:"w2"},起止分别有左大括号和右大括号。

    直接写的点位符位报错:

    java.lang.IllegalArgumentException : can't parse argument number MessageFormat

    解决方法是将单引号把大括号包含起来。如下:

            String responseTemplate = "'{'code:"{0}",des:"{1}"'}'";

            System.out.println(MessageFormat.format(responseTemplate, "w1","w2"));

    这是正确的做法,之前参考另一个网友说的只加一个单引号:"'{code:"{0}",des:"{1}"}'"; 测试时发现{0}等都没有替换,这是错误的做法,'{'两边都要加。

    如果格式化字符串中包含单引号,处理方法是用2个单引号进行转义:

            String responseTemplate = "'{'code:''{0}'',des:''{1}'''}'";
            System.out.println(MessageFormat.format(responseTemplate, "w1","w2"));

    处理结果:{code:'w1',des:'w2'}

  • 相关阅读:
    BZOJ1452 count (树状数组)
    splay
    CODEVS1222 信与信封问题 (匈牙利算法)
    CODEVS1022 覆盖 (二分图染色+匈牙利算法)
    反思——针对作业的反思
    学习进度
    软件工程个人作业01
    阅读笔记
    安装SQL Server 2014
    软件工程概论_作业01
  • 原文地址:https://www.cnblogs.com/zhangs1986/p/8668645.html
Copyright © 2020-2023  润新知