• Exception in thread "main" java.util.MissingFormatArgumentException: Format specifier 's'


    1、错误描述

    Exception in thread "main" java.util.MissingFormatArgumentException: Format specifier 's'
    	at java.util.Formatter.format(Formatter.java:2487)
    	at java.io.PrintStream.format(PrintStream.java:970)
    	at java.io.PrintStream.printf(PrintStream.java:871)
    	at com.you.example.ArrayExample.main(ArrayExample.java:56)

    2、错误原因

    /**
     *
     * 项目名称:DABF
     * 项目包名:com.you.example
     * 文件名称:ArrayExample.java
     * 类型名称:ArrayExample
     * 创建作者:游海东
     * 创建日期:2017-1-7
     * 创建时间:下午2:58:36
     * 项目版本:V1.0
     */
    package com.you.example;
    
    import java.util.ArrayList;
    
    /**
     * 文件名称:ArrayExample.java
     * 文件类型:ArrayExample
     * 文件包名:com.you.example
     * 创建作者:游海东
     * 创建日期:2017-1-7
     * 创建时间:下午2:58:36
     */
    public class ArrayExample 
    {
    
    	/**
    	 * 方法描述:
    	 * 创建作者:游海东
    	 * 创建日期:2017-1-7
    	 * 创建时间:下午2:58:36
    	 * 方法名称:main
    	 * 方法类型:ArrayExample
    	 * 返回类型:void
    	 * @param args
    	 */
    	public static void main(String[] args) 
    	{
    		ArrayList<String> strList = new ArrayList<String>();
    		strList.ensureCapacity(3);
    		strList.trimToSize();
    		strList.add(0, "A");
    		strList.add(1, "B");
    		strList.add(2, "C");
    		strList.add(3, "D");
    		strList.add("E");
    		for(int i=0;i<strList.size();i++)
    		{
    			System.out.println(strList.get(i));
    		}
    		
    		int x = Integer.parseInt("34");
    		System.out.println(Integer.reverse(x));
    		
    		System.out.printf("%d %s",23);
    	}
    
    }
    
          打印printf时,“23”是一个数值类型,格式化不能用“%d %s”

    3、解决办法

    /**
     *
     * 项目名称:DABF
     * 项目包名:com.you.example
     * 文件名称:ArrayExample.java
     * 类型名称:ArrayExample
     * 创建作者:游海东
     * 创建日期:2017-1-7
     * 创建时间:下午2:58:36
     * 项目版本:V1.0
     */
    package com.you.example;
    
    import java.util.ArrayList;
    
    /**
     * 文件名称:ArrayExample.java
     * 文件类型:ArrayExample
     * 文件包名:com.you.example
     * 创建作者:游海东
     * 创建日期:2017-1-7
     * 创建时间:下午2:58:36
     */
    public class ArrayExample 
    {
    
    	/**
    	 * 方法描述:
    	 * 创建作者:游海东
    	 * 创建日期:2017-1-7
    	 * 创建时间:下午2:58:36
    	 * 方法名称:main
    	 * 方法类型:ArrayExample
    	 * 返回类型:void
    	 * @param args
    	 */
    	public static void main(String[] args) 
    	{
    		ArrayList<String> strList = new ArrayList<String>();
    		strList.ensureCapacity(3);
    		strList.trimToSize();
    		strList.add(0, "A");
    		strList.add(1, "B");
    		strList.add(2, "C");
    		strList.add(3, "D");
    		strList.add("E");
    		for(int i=0;i<strList.size();i++)
    		{
    			System.out.println(strList.get(i));
    		}
    		
    		int x = Integer.parseInt("34");
    		System.out.println(Integer.reverse(x));
    		
    		System.out.printf("%d",23);
    	}
    
    }
    


  • 相关阅读:
    DLL编写中extern “C”和__stdcall的作用
    spring mvc controller中的异常封装
    springMVC 【@response 返回对象自动变成json并且防止乱码】 & 【配置支持实体类中的@DateTimeFormat注解】
    Eclipse中修改SVN用户名和密码方法
    Maven
    j2ee、mvn、eclipse、Tomcat等中文乱码问题解决方法
    maven生成jar包
    windows超过最大连接数解决命令
    spring 国际化-i18n
    springMVC 前后台日期格式传值解决方式之二(共二) @InitBinder的使用
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13313986.html
Copyright © 2020-2023  润新知