0
我有一個關於如何使用printf
顯示布爾值的問題。就我而言,我認爲我唯一遇到的問題是用printf
顯示布爾類型。我怎樣才能解決這個問題?任何幫助將不勝感激。當我運行我的程序,我得到這個:在布爾值上使用printf
run:
_____________________________________________________________________________________________________________
| Household Waste Recycled | | Pounds of CO2 |
_____________________________________________________________________________________________________________
Index People Paper Plastic Glass Cans Total Emission ReductionNet Emission
Exception in thread "main" java.util.IllegalFormatConversionException: f != CO2FromWaste
at java.util.Formatter$FormatSpecifier.failConversion(Formatter.java:4045)
at java.util.Formatter$FormatSpecifier.printFloat(Formatter.java:2761)
at java.util.Formatter$FormatSpecifier.print(Formatter.java:2708)
at java.util.Formatter.format(Formatter.java:2488)
at java.io.PrintStream.format(PrintStream.java:970)
at java.io.PrintStream.printf(PrintStream.java:871)
at CO2FromWasteTester.main(CO2FromWasteTester.java:55)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)
下面是我的主要方法文件中的代碼:
import java.util.ArrayList;
public class CO2FromWasteTester {
public static void main(String args[]){
ArrayList<CO2FromWaste> CO2 = new ArrayList<CO2FromWaste>();
CO2.add(new CO2FromWaste(1, true, true, true, true));
CO2.add(new CO2FromWaste(2, true, false, true, false));
CO2.add(new CO2FromWaste(3, true, true, true, false));
CO2.add(new CO2FromWaste(4, false, false, false, true));
CO2.add(new CO2FromWaste(5, false, true, false, true));
CO2.add(new CO2FromWaste(6, true, true, true, true));
CO2FromWaste data;
for(int i = 0; i < CO2.size(); i++){
data = CO2.get(i);
data.getNumberOfPeople();
data.Paper();
data.Plastic();
data.Glass();
data.Can();
data.NetEmission();
data.reduction();
data.totalEmission();
}
// create table headings
System.out.println("___________________________________________________"
+ "__________________________________________________________");
System.out.printf("%65s%44s%n", "| Household Waste Recycled |",
"| Pounds of CO2 |");
System.out.println("___________________________________________________"
+ "__________________________________________________________");
System.out.printf("%1s%12s%12s%12s%12s%12s%20s%12s%12s%n%n", "Index", "People",
"Paper", "Plastic", "Glass", "Cans", "Total Emission", "Reduction",
"Net Emission");
// call methods
for(int i = 0; i < CO2.size(); i++){
data = CO2.get(i);
System.out.printf("%1f%1f%5b%5b%5b%5b%4.2f%4.2f%4.2f",
data = CO2.get(i),
data.getNumberOfPeople(),
data.Paper(),
data.Plastic(),
data.Glass(),
data.Can(),
data.totalEmission(),
data.reduction(),
data.NetEmission());
}
}
}
+1,即將寫入相同。雖然沒有給出記錄的定義,但在這裏我沒有看到任何布爾類型。 – PMF
雖然在這裏'6,真實,真實,真實'(二氧化碳數據)有布爾值,你說得對,它*不直接是一個布爾值。 – hichris123
我的意思是說,輸出的標題看起來像是期待寫入浮動數據,也就是'data.Paper()'應該可能指示回收的紙張數量,而不僅僅是紙張是否被回收。 – PMF