您的位置:程序门 -> java -> j2se / 基础类



有关格式控制输出的问题。


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


有关格式控制输出的问题。[已结贴,结贴人:sjshuang]
发表于:2007-02-08 19:18:11 楼主
import   java.util.*;
public   class   example
{
public   static   void   main(string   args[])
{
scanner   reader=new   scanner(system.in);
int   x,y;
system.out.printf( "请输入一个数: ");
x=reader.nextint();
if(x <0)
{
y=-1+2*x;
system.out.printf( "y=%3d "+y);
}
else   if(x==0)
{
y=-1;
system.out.printf( "y= "+y);
}
else
{
y=-1+3*x;
system.out.printf( "y= "+y);
}
}
}

运行后报错,知道是哪个%3d惹的,要怎么修改呢?把它怎样放才对?
请输入一个数:-6
y=exception   in   thread   "main "   java.util.missingformatargumentexception:   format   sp
ecifier   '3d '
                at   java.util.formatter.format(formatter.java:2429)
                at   java.io.printstream.format(printstream.java:899)
                at   java.io.printstream.printf(printstream.java:800)
                at   example.main(example.java:13)
press   any   key   to   continue...
发表于:2007-02-08 19:39:231楼 得分:20
printf

public   printstream   printf(string   format,
                                                    object...   args)

        使用指定格式字符串和参数将格式化的字符串写入此输出流的便捷方法。

        调用此方法的   out.printf(format,   args)   形式,行为与以下调用完全相同:

                  out.format(format,   args)  

        参数:
                format   -   在格式字符串的语法中描述的格式字符串
                args   -   格式字符串中的格式说明符引用的参数。如果参数多于格式说明符,则忽略额外的参数。参数的数量是可变的,并且可以为零。参数的最大数量受到《java   virtual   machine   specification》定义的   java   数组的最大维数的限制。针对   null   参数的行为依赖于   conversion。  
        返回:
                此输出流  
        抛出:
                illegalformatexception   -   如果格式字符串包含非法语法、与给定参数不兼容的格式说明符、对给定格式字符串而言不够充足的参数或其他非法条件。有关所有可能的格式错误的规范,请参阅   formatter   类规范的详细信息部分。  
                nullpointerexception   -   如果   format   为   null
        从以下版本开始:
                1.5

而你的代码中,其实是system.out.printf(string)!
应该是system.out.printf(string,object...)!
把你的输出语句system.out.printf( "y=%3d "+y);改为system.out.printf( "y=%3d ",y);就可以了
下面的代码也一样改


快速检索

最新资讯
热门点击