@@ -24,19 +24,19 @@ O exame de certificação compreende quatro classes principais de formatação:
2424. É possível obter uma instância de `NumberFormat` a partir de vários métodos estáticos, dependendo da necessidade.
2525+
2626[source,java,indent=0]
27- .{java-package}/formats/NumberFormat_Instance.java
27+ .{java-package}/formats/numberformat/ NumberFormat_Instance.java
2828----
29- include::{section-java-package}/formats/NumberFormat_Instance.java[tag=code]
29+ include::{section-java-package}/formats/numberformat/ NumberFormat_Instance.java[tag=code]
3030----
3131+
3232Lembre-se que, se não for informado o `Locale`, será utilizado o padrão. O ideal é sempre informar o `Locale`.
3333
3434. O `NumberFormat` por ser utilizado para transformar números em Strings.
3535+
3636[source,java,indent=0]
37- .{java-package}/formats/NumberFormat_NumberToString.java
37+ .{java-package}/formats/numberformat/ NumberFormat_NumberToString.java
3838----
39- include::{section-java-package}/formats/NumberFormat_NumberToString.java[tag=code]
39+ include::{section-java-package}/formats/numberformat/ NumberFormat_NumberToString.java[tag=code]
4040----
4141+
4242.Saída no console
@@ -52,9 +52,9 @@ Perceba que a representação do número muda de acordo com o `Locale`.
5252. O `NumberFormat` por ser utilizado para transformar Strings em números.
5353+
5454[source,java,indent=0]
55- .{java-package}/formats/NumberFormat_StringToNumber.java
55+ .{java-package}/formats/numberformat/ NumberFormat_StringToNumber.java
5656----
57- include::{section-java-package}/formats/NumberFormat_StringToNumber.java[tag=code]
57+ include::{section-java-package}/formats/numberformat/ NumberFormat_StringToNumber.java[tag=code]
5858----
5959+
6060.Saída no console
@@ -70,9 +70,9 @@ Perceba que dependendo do `Locale`, estamos representando um número diferente,
7070. O `NumberFormat` por ser utilizado para transformar Strings em valores monetários, e vice-versa.
7171+
7272[source,java,indent=0]
73- .{java-package}/formats/NumberFormat_Currency.java
73+ .{java-package}/formats/numberformat/ NumberFormat_Currency.java
7474----
75- include::{section-java-package}/formats/NumberFormat_Currency.java[tag=code]
75+ include::{section-java-package}/formats/numberformat/ NumberFormat_Currency.java[tag=code]
7676----
7777+
7878.Saída no console
@@ -91,9 +91,9 @@ Perceba que novamente o resultado muda de acordo com o `Locale`. Além disso, n
9191. O `NumberFormat` por ser utilizado para transformar Strings em percentuais, e vice-versa.
9292+
9393[source,java,indent=0]
94- .{java-package}/formats/NumberFormat_Percent.java
94+ .{java-package}/formats/numberformat/ NumberFormat_Percent.java
9595----
96- include::{section-java-package}/formats/NumberFormat_Percent.java[tag=code]
96+ include::{section-java-package}/formats/numberformat/ NumberFormat_Percent.java[tag=code]
9797----
9898+
9999.Saída no console
@@ -112,9 +112,9 @@ Veja que, ao formatar, `100%` é `1`, logo `80%` é `0,8`. Além disso, no `Loca
112112. O `NumberFormat` pode ficar complicado ao lidar com vírgulas.
113113+
114114[source,java,indent=0]
115- .{java-package}/formats/NumberFormat_Percent2.java
115+ .{java-package}/formats/numberformat/ NumberFormat_Percent2.java
116116----
117- include::{section-java-package}/formats/NumberFormat_Percent2.java[tag=code]
117+ include::{section-java-package}/formats/numberformat/ NumberFormat_Percent2.java[tag=code]
118118----
119119+
120120.Saída no console
@@ -128,6 +128,62 @@ No `Locale pt_BR`, temos o resultado esperado. Porém, no `Locale en_US` o `80,2
128128
129129==== DecimalFormat
130130
131+ Enquanto `NumberFormat` permite utilizar formatos pré definidos, `DecimalFormat` permite uma personalização maior. Um exemplo de formato para o `DecimalFormat` é `\#\##,\###.\###`.
132+ +
133+ * `#` preenche a posição com um número, ou omite se não houver nada.
134+ * `0` preenche a posição com um número, ou 0 se não houver nada.
135+ * `.` indica onde é a posição do separador decimal.
136+ * `,` indica onde é a posição do separador de grupos.
137+
138+ . É possível obter uma instância de `DecimalFormat` utilizando o construtor.
139+ +
140+ [source,java,indent=0]
141+ .{java-package}/formats/decimalformat/DecimalFormat_Instance.java
142+ ----
143+ include::{section-java-package}/formats/decimalformat/DecimalFormat_Instance.java[tag=code]
144+ ----
145+ +
146+ .Saída no console
147+ [source,console]
148+ ----
149+ ###,###.###: 12.345,67
150+ 000,000.###: 012.345,67
151+ ###,###.000: 12.345,670
152+ 000,000.000: 012.345,670
153+ ###.##: 12345,67
154+ 000000.000: 012345,670
155+ ###: 12346
156+ ----
157+ +
158+ Estou executando o código onde o `Locale` padrão é `pt_BR`, por isso a saída no console apresenta vírgulas para separar grupos e pontos para separar os decimais.
159+
160+ . Para utilizar um `Locale` específico, é necessário instanciar um `NumberFormat` e fazer um _cast_ para `DecimalFormat`.
161+ +
162+ [source,java,indent=0]
163+ .{java-package}/formats/decimalformat/DecimalFormat_Locale.java
164+ ----
165+ include::{section-java-package}/formats/decimalformat/DecimalFormat_Locale.java[tag=code]
166+ ----
167+ +
168+ .Saída no console
169+ [source,console]
170+ ----
171+ 12,345.67
172+ ----
173+
174+ . É possível colocar outros símbolos ou palavras no formato do `DecimalFormat`.
175+ +
176+ [source,java,indent=0]
177+ .{java-package}/formats/decimalformat/DecimalFormat_Strings.java
178+ ----
179+ include::{section-java-package}/formats/decimalformat/DecimalFormat_Strings.java[tag=code]
180+ ----
181+ +
182+ .Saída no console
183+ [source,console]
184+ ----
185+ Número 12.345,67 formatado
186+ ----
131187
132188==== DateTimeFormatter
133189==== DateFormat
0 commit comments