2014-09-18 176 views
-4

我正在查看一个朋友的代码,我在一个java 2类。 system.out.format和system.out.println有什么区别?另外,我可以得到一个快速说明/网站,可以解释什么%26,25s或%-10,10s等在这个项目中做?最后,在j.getxxx中,j是什么。在这个项目中做什么?或者,有没有一个网站更好地解释它?感谢您的帮助我需要帮助理解java代码

for(int i=0; i<inventory.size(); i++){ 
       Product j = inventory.get(i); 
       System.out.format("%-26.25s",j.getName()); 
       System.out.format("%-10.10s", j.getInventoryCode()); 
       System.out.format("%-6s", j.getType()); 
       int avgRating = j.getAvgUserRating(); 
       String stars = ""; 
       int k = 0; 
       while (k<avgRating){ 
        stars= stars +"*"; 
        k++; 
       } 
       System.out.format("%-7s", stars); 
       System.out.format("%6d", j.getUserRatingCount()); 
       System.out.format("%7d", j.getQuantity()); 
       System.out.format("%7.2f", j.getPrice()); 
       System.out.println(); 
      } 
+0

这是一个很好的解释在这里:http://docs.oracle.com/javase/tutorial/essential/io/formatting.html – Keppil 2014-09-18 19:22:52

+0

检查[这里](http://docs.oracle.com/javase/7/docs/api/java/io/PrintStream.html#println(java.lang.Object))和[here](http:// docs .oracle.com/javase/7/docs/api/java/io/PrintStream.html#format(java.lang.String,%20java.lang.Object ...)) – TNT 2014-09-18 19:32:18

+0

您是否阅读过文档? – tnw 2014-09-18 19:36:30

回答

1

System.out.println只是打印出没有格式化的字符串。 System.out.format允许在输出之前进行额外的格式化,例如填充或小数精度。
Documentation

%-6s是他用填充格式化输出。

j.表示后面的方法是对象j

1

的System.out.println写入标准输出(控制台)的成员和所述System.out.format返回字符串对象。

使用哪个取决于唯一的目的。如果要在stdout(控制台)中显示字符串,请使用第一个。如果你想获得格式化字符串的句柄以在代码中进一步使用,那么使用第二个。

Product j = inventory.get(i); 

这里j是Product类的引用变量。在创建对象时,您将该对象的引用分配给引用变量,以便稍后您可以借助引用变量调用该类方法。正如在你的代码你正在使用这个调用getName()方法类似

j.getName();