A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lpf870826 中级黑马   /  2014-12-31 21:38  /  1733 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class Test2__18 {    public static void main (String[] args) {
        System.out.printf("%-8s%-8s%-8s\n", "a", "b", "pow(a, b)");
        int a = 1;
        int b = 2;
        while (a < 6) {
            int c = (int)Math.pow(a, b);
           System.out.printf("%-8d%-8d%-8d\n", a, b, c);
           a++;
           b++;
      }
  }
}

打印结果:

a       b       pow(a, b)
1       2       1
2       3       8
3       4       81
4       5       1024
5       6       15625

个位大神的自荐信得分是多少了?我的怎么才7.5分.......

8 个回复

倒序浏览
%-8d%-8d%-8d
学习了 这样打印学生语文、数学、英语成绩就美观多了 原来考的是这个知识点
一直用\t 果然我很菜 太菜了 太菜了
回复 使用道具 举报
涨知识。。。。
回复 使用道具 举报
最后打印格式有点像C语言打印打印输出控制语句,谢谢楼主分享
回复 使用道具 举报
没用过这种用法,楼主以前应该学过C或者其他语言吧?。。。。。
回复 使用道具 举报
应该就是c 啊
回复 使用道具 举报
(1)、图形输出最好用System.out.printf()方法格式化输出。调用这个方法的语法是:
  System.out.printf(format,item1,item2,.......,itemk),这里的format是指一个子串
和格式标识符构成的字符串。
       如上例,常用标识符
         %5c    输出字符并在这个字符条目前面加4个空格。
       %6b    输出布尔值,在false前加一个空格,在true前加两个空格。
       %5d    输出十进制整数条目,宽度至少为5,如果数字位数小于5,则自动在前面添加空格,
如果大于5,则自动增加宽度。
       %10.2f    输出的浮点数宽度至少为10,包括小数点和小数点后两位,即小数点前为7为,如果小于
7,添加空格,如果大于7,则自动增加宽度。
       %12s    输出的字符宽度至少为12位,其余同上。
       %10.2e   输出标准科学计数法形式的数,宽度为10,包括小数点和小数点后两位和指数部分。
      “ —”代表表示该条目在特点宽度的输出是左对齐的。
        “\n”代表换行。输出双引号、单引号、反斜杠,前面都要加   \   
\b  退格键, \t  Tab键, \f 进纸 ,\r 回车键。
       标识符的个数于后面跟的条目要一致,并且条目和标识符必须在类型上严格匹配。
       条目中间一定要注意有逗号隔开。如果用“+”的话,编译能够通过,运行时会报错下面是报错信息:
E:\test-git\JavaEighthEdition>javac Test2__18.java

E:\test-git\JavaEighthEdition>java Test2__18
abpow(a, b)Exception in thread "main" java.util.MissingFormatArgumentException:
Format specifier '-8s'
        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 Test2__18.main(Test2__18.java:3)

(2)第7、8行如果该为System.out.printf("%-8d%-8d%-8d\n", a, b,(int)Math.pow(a, b));
E:\test-git\JavaEighthEdition>java Test2__18
abpow(a, b)Exception in thread "main" java.util.MissingFormatArgumentException:
Format specifier '-8s'
        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 Test2__18.main(Test2__18.java:3)

查找API显示:如果格式说明符没有相应的参数,或者参数索引引用了不存在的参数时,则抛出未经检查的异常。

(3)  int c = (int)Math.pow(a, b);。
  参数:a - 底数。b - 指数。返回:值 ab。
public static double pow(double a, double b)    返回double值,所以必须强制转化为int类型。

Math.的一些方法
Math.rint(  2.1  )            return   2.0    返回最接近参数并等于某一整数的 double 值。如果两个同为整数
                                                                   的 double 值都同样接近,那么结果取偶数。
Math.rint( -2.1  )            return   -2.0
Math.rint(  2.5  )            return   2.0
Math.rint( 3.5   )            return   4.0
Math.rint(  -2.5  )            return   -2.0
Math.ceil(  2.1  )          返回最小的double值,该值大于参数,并等于某个整数。向右取整。
Math.floor(  2.1  )         返回最大的double值,该值小于参数,并等于某个整数。向左取整。  
回复 使用道具 举报
Eagle 发表于 2015-1-1 08:30
没用过这种用法,楼主以前应该学过C或者其他语言吧?。。。。。

没有,我从我朋友给我买的书上看的。呵呵
回复 使用道具 举报
lpf870826 发表于 2015-1-2 11:05
没有,我从我朋友给我买的书上看的。呵呵

哦哦。呵呵
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马