String.format Java



ява Радок Радок.fomat

Метад string format () у Java вяртае адфарматаванае значэнне радка, заснаванае на мовах, фармаце і перададзеных аргументах. Калі мы не ўказваем лакаль, яна прымае стандартную лакаль з Locale.getDefault (). Пры перадачы дадатковых аргументаў дадатковыя аргументы будуць ігнаравацца.

Гэта метад падобны на метад sprintf () мовы C і printf () метаду Java Print.

Фармат радка () Сінтаксіс у Java

Мы можам выкарыстоўваць метад String format () ніжэй 2 спосабамі:

Без выкарыстання Locale

адкрыты статычны фармат радка (фармат радка, аб'ект ... аргументы)

Выкарыстанне Locale

агульнадаступны статычны фармат радка (лакальная мова, фармат радка, аб'ект ... аргументы)

Мясцовы - мова, якая павінна прымяняцца па метадзе format ()

фармат - неабходны фармат радка

аргі - аргументы для радка фарматавання. Гэта можа быць нуль і больш.

Фармат радка () Выключэнні

,en Радок Java Метад format () выкідвае ніжэй за 2 выключэнні:

NullPointerException - калі фармат нулявы

IllegalFormatException альбо IllelagFormatConversionException - калі ўказаны фармат незаконны альбо несумяшчальны

MissingFormatArgumentException - калі аргумент адсутнічае для зададзенага фармату.

Тыпы фарматаў Java String

Мы можам выкарыстоўваць ніжэй пералічаныя тыпы фарматаў для пераўтварэння Радок

Тып фарматуТып дадзеныхвыхад
%aПлаваючая кропкаШаснаццатковае значэнне ліку з плаваючай кропкай
%bлюбы тып"Праўда", калі не нуль, і "Ілжыва", калі нуль
%cХарактарЮнікод персанаж
%dЦэлы лікДзесятковы цэлы лік
%eПлаваючая кропкаДзесятковы лік у навуковых абазначэннях
%fПлаваючая кропкаДзесятковы лік
%gПлаваючая кропкаДзесятковы лік у навуковых абазначэннях, заснаваны на дакладнасці і значэнні
%hлюбы тыпЗначэнне шаснаццаткавага радка з метаду hashCode ()
%nні адзінРаздзяляльнік радкоў для пэўнай платформы
%oЦэлы лікВасьмярковы лік
%sлюбы тыпРадок
%tДата / часГэта прэфікс для пераўтварэння даты / часу. Для больш падрабязнай інфармацыі глядзіце ніжэй табліцу
%xЦэлы лікШасцігранная радок

Прыклады фармату Java String

public class Democlass {

  public static void main(String[] args) {
    formatString();
    
  }
  
  public static void formatString()
  {
    System.out.println("Output of %a is " + String.format("%a", 1.5));
    System.out.println("Output of %b is " + String.format("%b", false));
    System.out.println("Output of %B is " + String.format("%B", true));
    System.out.println("Output of %c is " + String.format("%c", 'd'));
    System.out.println("Output of %d is " + String.format("%d", 101));
    System.out.println("Output of %e is " + String.format("%e", 5.6));
    System.out.println("Output of %f is " + String.format("%f", 5.6));
    System.out.println("Output of %g is " + String.format("%g", 5.6));
    System.out.println("Output of %h is " + String.format("%h", 10));
    System.out.println("Output of %n is " + String.format("%n"));
    System.out.println("Output of %o is " + String.format("%o", 8));
    System.out.println("Output of %s is " + String.format("%s", "Java"));
    System.out.println("Output of %x is " + String.format("%x", 10));
  }
}


Output:
Output of %a is 0x1.8p0
Output of %b is false
Output of %B is TRUE
Output of %c is d
Output of %d is 101
Output of %e is 5.600000e+00
Output of %f is 5.600000
Output of %g is 5.60000
Output of %h is a
Output of %n is 

Output of %o is 10
Output of %s is Java
Output of %x is a

Фармат радка Дата Час Тыпы

Як ужо згадвалася ў прыведзенай вышэй табліцы, мы выкарыстоўваем% t як прэфікс для пераўтварэнняў даты і часу ў метадзе фарматавання Java String. Калі мы выкарыстоўваем сімвал з вялікай літары разам з% t, мы атрымліваем вывад у вялікіх рэгістрах. Аналагічным чынам, калі мы выкарыстоўваем маленькі знак разам з% t, мы атрымліваем вывад з малой літары.

Тып фарматувыхад
% тАПоўная назва будня, напрыклад: нядзеля
% таКароткая назва будня, напрыклад: Вс
% тБПоўная назва месяца, напрыклад: студзень
% тбКароткая назва месяца, напрыклад: Ян
% тСГод адфарматаваны з 2 лічбаў, напрыклад: ад 00 да 99
% tcДата і час у фармаце "% ta% tb% td% tT% tZ% tY", Напрыклад: Субота 23 мая 21:25:46 IST 2020
% tDДата ў фармаце "ММ / ДД / ГГ", Напрыклад: 05 "
% тдДзень месяца з 2 лічбаў, напрыклад: з 01 па 31
% тэДзень месяца без значэння 0, Напрыклад: ад 1 да 31
% тФАдфарматаваная дата ў “ГГГГ-ММ-ДД
% tHГадзіна дня ў фармаце 24 гадзіны
% тысТое ж, што і% tb
% tIГадзіна дня ў фармаце 12 гадзіны
% tjДзень года з лідзіруючымі 0. Напр .: ад 001 да 366
% tkГадзіна дня ў фармаце 24 гадзіны без значэння 0, напрыклад: ад 0 да 23
% тлГадзіна дня ў фармаце 12 гадзіны без значэння 0, напрыклад: ад 0 да 12
% тМХвіліна з лідэрам 0, напрыклад: ад 00 да 59
% тмМесяц адфарматаваны з лідэрам 0, напрыклад: з 01 па 12
% tNНанасекунда часу, адфарматаваная з 9 лічбаў і з нулем, напрыклад: ад 0 да 000000000
% tpМясцовая мова залежыць ад часу, напрыклад: раніца ці вечар
% tQМілісекунды
% tRЧас у фармаце 24 гадзіны як "ЧЧ: ММ"
% трЧас у фармаце 12 гадзін як "ЧЧ: ММ: СС ПМ / ПМ"
% tSХвіліны ў секунду, адфарматаваныя з 2 лічбаў, напрыклад: ад 00 да 59
% цСекунд
% tTЧас у фармаце 24 гадзіны як "ЧЧ: ММ: СС"
% tYГод у фармаце 4 лічбы як "ГГГГ"
% тыГод у 2-значным фармаце як "ГГ"
% tZАбрэвіятура гадзіннага пояса, напрыклад: IST, UTC
% тзЧасовы пояс зрушаны з GMT, напрыклад: +0530

Прыклад фармату Java String з Date-Time

У прыведзеным ніжэй прыкладзе мы бачым, як можна атрымаць любую частку даты ці часу з дапамогай метаду format ().

import java.util.Calendar;

public class Democlass {

  public static void main(String[] args) {
    formatDateTimeString();
    
  }
  
  public static void formatDateTimeString()
  {
    System.out.println("Output of %tA is " + String.format("%tA", Calendar.getInstance()));
    System.out.println("Output of %ta is " + String.format("%ta", Calendar.getInstance()));
    System.out.println("Output of %tB is " + String.format("%tB", Calendar.getInstance()));
    System.out.println("Output of %tb is " + String.format("%tb", Calendar.getInstance()));
    System.out.println("Output of %tC is " + String.format("%tC", Calendar.getInstance()));
    System.out.println("Output of %tc is " + String.format("%tc", Calendar.getInstance()));
    System.out.println("Output of %tD is " + String.format("%tD", Calendar.getInstance()));
    System.out.println("Output of %td is " + String.format("%td", Calendar.getInstance()));
    System.out.println("Output of %te is " + String.format("%te", Calendar.getInstance()));
    System.out.println("Output of %tF is " + String.format("%tF", Calendar.getInstance()));
    System.out.println("Output of %tH is " + String.format("%tH", Calendar.getInstance()));
    System.out.println("Output of %th is " + String.format("%th", Calendar.getInstance()));
    System.out.println("Output of %tI is " + String.format("%tI", Calendar.getInstance()));
    System.out.println("Output of %tj is " + String.format("%tj", Calendar.getInstance()));
    System.out.println("Output of %tk is " + String.format("%tk", Calendar.getInstance()));
    System.out.println("Output of %tl is " + String.format("%tl", Calendar.getInstance()));
    System.out.println("Output of %tM is " + String.format("%tM", Calendar.getInstance()));
    System.out.println("Output of %tm is " + String.format("%tm", Calendar.getInstance()));
    System.out.println("Output of %tN is " + String.format("%tN", Calendar.getInstance()));
    System.out.println("Output of %tp is " + String.format("%tp", Calendar.getInstance()));
    System.out.println("Output of %tQ is " + String.format("%tQ", Calendar.getInstance()));
    System.out.println("Output of %tR is " + String.format("%tR", Calendar.getInstance()));
    System.out.println("Output of %tr is " + String.format("%tr", Calendar.getInstance()));
    System.out.println("Output of %tS is " + String.format("%tS", Calendar.getInstance()));
    System.out.println("Output of %ts is " + String.format("%ts", Calendar.getInstance()));
    System.out.println("Output of %tT is " + String.format("%tT", Calendar.getInstance()));
    System.out.println("Output of %tY is " + String.format("%tY", Calendar.getInstance()));
    System.out.println("Output of %ty is " + String.format("%ty", Calendar.getInstance()));
    System.out.println("Output of %tZ is " + String.format("%tZ", Calendar.getInstance()));
    System.out.println("Output of %tz is " + String.format("%tz", Calendar.getInstance()));
  }
}


Output:
Output of %tA is Sunday
Output of %ta is Sun
Output of %tB is May
Output of %tb is May
Output of %tC is 20
Output of %tc is Sun May 24 09:40:28 IST 2020
Output of %tD is 05/24/20
Output of %td is 24
Output of %te is 24
Output of %tF is 2020-05-24
Output of %tH is 09
Output of %th is May
Output of %tI is 09
Output of %tj is 145
Output of %tk is 9
Output of %tl is 9
Output of %tM is 40
Output of %tm is 05
Output of %tN is 650000000
Output of %tp is am
Output of %tQ is 1590293428650
Output of %tR is 09:40
Output of %tr is 09:40:28 AM
Output of %tS is 28
Output of %ts is 1590293428
Output of %tT is 09:40:28
Output of %tY is 2020
Output of %ty is 20
Output of %tZ is IST
Output of %tz is +0530

Індэкс аргументаў

Мы можам указаць індэкс аргумента ў метадзе фарматавання радка для фарматавання, згадваючы паміж "%" і "$". Індэкс заўсёды пачынаецца з 1.

У прыведзеным ніжэй прыкладзе першае выказванне друкуе "Java" 1 разы, бо мы перадаём індэкс аргумента як 2 двойчы. Другая заява друкуе толькі другую радок, якую мы перадалі, бо індэкс аргумента роўны 1.

Прыклад фармата радка Java з індэксам аргумента

public class Democlass {

  public static void main(String[] args) {
    String str1 = "Java";
    String str2 = "Tutorial";
    System.out.println(String.format("%1$s %1$s %2$s" , str1,str2));
    System.out.println(String.format("%2$s", "Hello","world"));
  }
}


Output:
Java Java Tutorial
world

Выраўноўванне і пракладка

Мы таксама можам выкарыстоўваць метад format () для выраўноўвання па левым / правым напрамках і дапаўнення радка нулямі.

Фарматаванне цэлых лікаў

Мы можам вызначыць шырыню / даўжыню патрэбнага цэлага ліку, уключыўшы прабел, выраўнаванне па левым краі ці выраўноўванне па цэлым ліцы па правым кірунку, задаючы шырыню цэлага ліку, запоўніўшы 0. Прыведзены ніжэй прыклад ілюструе ўсе гэтыя тыпы фарматавання.

public class Democlass {

  public static void main(String[] args) {
    System.out.println(String.format("%d", 100)); //Integer
    System.out.println(String.format("[%5d]", 100)); //Right aligning-Prefixing 2 spaces to get length of integer as 5
    System.out.println(String.format("[%-5d]", 100)); //Left aligning integer of length 5 by suffixing 2 spaces
    System.out.println(String.format("[% d]", 100)); //space before an integer
    System.out.println(String.format("[%05d]", 100)); //Prefixing 2 0s to get length of integer as 5
    
  }
  
}
Output:
100
[  100]
[100  ]
[ 100]
[00100]

Фарматаванне радка

Мы таксама можам адфарматаваць радок на аснове выраўноўвання па левым / правым кірунку, выкарыстоўваючы метад String format (). Прыклад ніжэй ілюструе выраўноўванне радкоў

public class Democlass {

  public static void main(String[] args) {
    System.out.println(String.format("%s", "Java")); //String
    System.out.println(String.format("[%10s]", "Java")); //Right aligning - Prefixing 6 spaces to get string length as 10
    System.out.println(String.format("[%-10s]", "Java"));//Left aligning string of length 10 by suffixing 6 spaces
    System.out.println(String.format("[%.4s]", "Java language"));//Retrieve string based on maximum number of characters specified
  }
  
}
Output:
Java
[      Java]
[Java      ]
[Java]

Фарматаванне ў адпаведнасці з мовай

Мы можам адфарматаваць цэласнае значэнне на аснове пэўнай лакалі, выкарыстоўваючы метад фарматавання Java String. На аснове моўнай версіі метад format () фарматуе лікавае значэнне.

import java.util.Locale;
public class Democlass {

  public static void main(String[] args) {
    System.out.println(String.format(Locale.US,"%,d", 1000000));
    System.out.println(String.format(Locale.FRENCH, "%,d",1000000));
    System.out.println(String.format(Locale.GERMAN, "%,d",1000000));
  }
  
}
1,000,000
1?000?000
1.000.000

заключэнне

У гэтым уроку падрабязна прадстаўлены ўсе даступныя метады фарматавання, даступныя ў класе String, а таксама прыклады.

Спасылка