这是我们课本后的一道习题,代码如下:要求使用Console的format函数实现格式化输出
我看帮助文档,Console中format和printf用法一样,为什么我却运行不出来啊?您帮我调试下
import java.io.Console;
public class FormatDemo
{
 public static void main(String[] args)
 { 
  int i = 100;
  boolean status = true;
  String str="Welcome";
  Console cons=System.console();
  cons.format("%d %b %s",i,status,str);
  
 }
}

运行提示这样的错误:
Exception in thread "main" java.lang.NullPointerException
at IntegerDemo.main(IntegerDemo.java:10)

请各位大神知道format的具体使用方法,有事例代码是最好的,,感恩不尽

解决方案 »

  1.   

    当java程序是从cmd控制台中运行的时候,并且标准输入输出流没有被重定向过的话,console是存在的。当vm是自动运行的(应该是包含从ide运行这种情况,比如eclipse等等,system.console()返回的就是null),
    所以cons == null会出现空指针异常
      

  2.   

    可是我这里的cons不是空指针啊!那我现在怎么该,你没说出关键的地方啊
      

  3.   

    我刚试了下,在cmd运行下没有错误,但在Eclipes里运行就出现空指针异常。怎么改才能不出现异常呢??
      

  4.   

    跑控制台下去执行,不要在 IDE 的控制台中执行,要操作系统的控制台!
      

  5.   

    import java.io.Console;
     public class FormatDemo
     {
      public static void main(String[] args)
      { 
       int i = 100;
       boolean status = true;
       String str="Welcome";
       Console cons=System.console();
       cons.format(String.format("%1$d%2$b%3$s",i,status,str));
       
      }
     }我这样写只能输出一个100