2016-04-09 40 views
0

在尝试使用printf打印数组时遇到了一些问题,我通过OOP来完成它。林传球随机工资10名销售代表。在数组中使用java中的printf

这里是我这么远......

public void printArray() 
{ 
    for(int salesRep = 0; salesRep < salary.length; salesRep++) 
    { 
     System.out.printf("Sales Rep %d%n", "%4d Current Salary: %2.f", (salesRep + 1), salary[salesRep]); 
    } 
} 

这是我得到的输出...

enter image description here

但是我试图让它显示这样... enter image description here

任何帮助,将不胜感激。

+0

我从来没有编码的Java一行在我的生活,但是在我看来,你有3个(也许是4个)格式说明符(%d%n%4d%2.f),只有2个数据((salesRep + 1)和薪水[sal esRep])。 – jbm

+0

&d&n是一个十进制整数和新行(我计算为1说明符)%4d是选项卡跨和%2.f我认为是有2个小数位? – Konahrik16

+1

printf()的签名是'printf(String format,Object ... args)'。但是你有两个格式字符串,然后是2个参数,而不是1个格式字符串和3个参数。 –

回答

3

我认为它需要是这样的:

System.out.printf("Sales Rep %d Current Salary: %.2f %n", (salesRep + 1), salary[salesRep]); 

每个将要打印的行是双引号内。下面的值分别代替引号内的%d和%f(可以选择您自己的宽度/间距)。引号内的%n将创建一个换行符。

+0

我将%2.f%n更改为%.2f%n,它工作正常! – Konahrik16

1

您需要将您的格式字符串合并为一个字符串作为第一个参数。你也有一个太多的说明符,所以删除%4d。并将最后一个说明符更改为%.1f - 期间(.)必须位于数字(1)之前。如何在Java中使用printf

更多信息:https://www.cs.colostate.edu/~cs160/.Spring16/resources/Java_printf_method_quick_reference.pdf

例子:

public class Test { 
    public static void main(String []args) { 
    printArray(); 
    } 

    public static void printArray() { 
    double salary[] = {35000.0, 45000.0, 2000.0, 110000.0, 5000.0 
         35001.0, 18999.0, 95000.0, 9999.0, 65000.0}; 
    for(int salesRep = 0; salesRep < salary.length; salesRep++) { 
     System.out.printf("Sales Rep %d\tCurrent Salary: %.1f\n", 
         (salesRep + 1), salary[salesRep]); 
    } 
    } 
} 

输出:

Example output