8. óra (2017.11.06.)
Diák
gyak7.pdf (megoldás) (a 7. óra az október 23-i ünnepnap miatt elmaradt)
Feladatok
A zárthelyire való gyakorlásként oldjátok meg a gyak8.pdf diasoron részletezett feladatot.
String és kimenet formázása
A String.format metódus segítségével StringBuilder és stringek konkatenációja nélkül tudunk formázni, részstringeket összefűzni és a szövegen belül számokat a kívánt alakra hozni.
String formatted = String.format("A %d darab hordoban osszesen %f liter %s talalhato.", numberOfBarrels , totalCapacity, typeOfLiquid); // -> "A 13432 darab hordoban osszesen 180,574326 liter bor talalhato."
Haladó formázási opciók: ezres csoportosítás és tizedesjegyek száma:
String formatted = String.format("A %,d darab hordoban osszesen %.3f liter %s talalhato.", numberOfBarrels , totalCapacity, typeOfLiquid); // -> "A 13 432 darab hordoban osszesen 180,574 liter bor talalhato."
Haladó formázási opciók: padding nullákkal (itt a példában 9 szélességűre):
String formatted = String.format("%09d", 12); // -> "000000012"
A formázás kimenetele függ a területi beállításoktól, ha minden körülmények között például szóközt szeretnénk látni (ami a magyar területi beállítások alapértelmezett értéke) ezres csoportosításnál, adjunk meg explicit Local-t.
import java.util.Locale; ... String formatted = String.format(new Locale("hu"), "A %,d darab hordoban osszesen %.3f liter %s talalhato.", numberOfBarrels , totalCapacity, typeOfLiquid); // -> "A 13 432 darab hordoban osszesen 180,574 liter bor talalhato."
Fájlokba és a standart kimenetekre közvetlen is írhatunk formázott szövegeket, általában printf nevű metódussal. Arra figyelnünk kell, hogy egy println vagy a formázandó stringbe egy %n fűzésével ilyenkor saját magunknak kell gondoskodnunk a sorvége jelekről. Példa:
System.out.printf("A %,d darab hordoban osszesen %.3f liter %s talalhato.%n", numberOfBarrels , totalCapacity, typeOfLiquid);