Използване на printf за форматиране в Java
Osy mysaldarga karap lab.zhұmysty oryndanңyzdar.
тест на публичен клас
* Negіzgі әdіsі bastalatyn
* oryndau kez-kelgen Java-baғdarlama.
public static void main(String args[])
System.out.println("Здравей, свят!");
Използване на printf за форматиране в Java
Методътprintf() принадлежи към класаPrintStream, който отговаря за извеждането на информация. Вече познатите ни методиprint() иprintln() също са методи от класаPrintStream.
Методътprintf е дефиниран както следва:
printf (формат на низ, Object.args)
Първият аргумент наformat е низ, който указва шаблона, който ще бъде форматиран. Има определени правила за записването му.
В предишния пример форматът беше"%4d", къдетоd означава извеждане на десетично цяло число, а4 означава, че ако броят на знаците в числото е по-малък от 4, то ще бъде подплатено с интервали отпред с липсващия (до 4) брой знаци (по този начин се премества вдясно).
За по-голяма яснота даваме друг пример, който показва няколко числа в колона.
System.out.printf("%6d%n%6d%n%6d%n%6d%n%6d%n%6d", 666666, 55555, 4444, 333, 22, 1);
Следното ще бъде изведено на конзолата:
Тук във форматния низ сме използвали%6d%n, няколко пъти, където всеки%6d задава формата за едно от числата, дадени като аргументи по-долу. Първият%6d форматира числото666666, вторият%6d форматира55555 и т.н.%n означава нов ред. Тъй като форматирането%6d беше приложено към всички числа, числата, които съдържат по-малко от 6 знака, се преместват надясно слипсващия брой знаци и по този начин красиво подравнени.
Общата форма на инструкцията за форматиране е следната:
- % е специален знак, който маркира началото на инструкциите за форматиране.
- [флагове] са специални символи за форматиране. Например, флагът "+" означава, че числовата стойност трябва да включва знака +, флагът "-" означава ляво подравняване на резултата, флагът "," задава разделителя на хилядите за цели числа. Не е задължителна част от инструкциите.
- [width] е положително цяло десетично число, което определя минималния брой знаци за отпечатване. Не е задължителна част от инструкциите.
- [.precision] е неотрицателно десетично цяло число с точка пред него. Обикновено се използва за ограничаване на броя знаци. Конкретното поведение зависи от вида на трансформацията. Не е задължителна част от инструкциите.
- conversion е знак, указващ как трябва да бъде форматиран аргументът. Напримерd за цели числа,s за низове,f за плаващи числа. Той е задължителна част от инструкциите.
Всички възможни флагове и преобразувания (преобразуване ) са изброени в официалната документация. Тук нямаме за цел да научим всички, нашата цел е да научим как да прилагаме форматиране. Така че нека да разгледаме няколко примера.
Пример 2. Нека разгледаме пример, демонстриращ изход към конзолатапреди да се запознаем с форматирането ислед.
Без форматиране
System.out.println("Коренът на числото " + i + " е " + корен);
Следното ще бъде изведено на конзолата:
Коренът от 675 е 25.98076211353316
В този случай преобразуването на код в низ се генерира автоматично от Java компилатора. НасамЛошото е, че с голям брой променливи и текст за изход е лесно да се загуби контрол върху резултатите.
Форматиран
System.out.printf("Коренът на %d е %f", i, корен);
Където%d отговаря за показване на стойността на променливатаi, а%f отговаря за показване на стойността на променливатаroot. В този случай вече не използваме конкатенация.
Следното ще бъде изведено на конзолата:
Коренът от 675 е 25,980762
Както виждаме, форматът автоматично закръгля числото до 6 знака след десетичната запетая. Въпреки това, когато форматираме, можем да зададем толкова десетични знаци, колкото са ни необходими, например:
System.out.printf("Коренът на %d е %.2f", i, корен);
Ще изведе число с два знака след десетичната запетая.
Нека да разгледаме най-популярните правила за форматиране, използвайки примери.