Java String.format Examples: Numbers and Stri... https://www.dotnetperls.
com/format-java
Go Java Top 35 Java Example Pages...
Format. Often we need to compose
strings from variables (like integers)
and other text. String.format is ideal
here. It provides a format language
to which we add variables.
To insert numbers, we can use the "d"
format. We use ordinals after the initial "%"
symbol, starting at 1 and increasing. This
indicates which argument to insert.
Integers, d format. This is a good rst
example. We add the values 10, 20 and 30 to
a format string. We specify the format string
as the rst argument to format.
And:
We specify, after the "$" sign that we want
to insert numbers (digits) with the
lowercase "d" char.
Result:
Format yields a composed string containing text (number
words), punctuation, and numeric values.
Based on: Java 8
Java program that uses String.format
public class Program {
public static void main(String[] args) {
// Call String.format with three integer codes.
String result = String.format("One: %1$d Two: %2$d Three: %3$d",
10, 20, 30);
System.out.println(result);
}
}
Output
One: 10 Two: 20 Three: 30
Pad with zeros. Many format codes
can be used with String.format. Here
we pad a number with zeros on the left
side. The rst 0 means "pad with zeros"
and the 5 means "use ve digits."
Java program that pads with zeros
public class Program {
public static void main(String[] args) {
1 de 6 09/05/17 15:33
Java String.format Examples: Numbers and Stri... https://www.dotnetperls.com/format-java
for (int i = 0; i < 5; i++) {
// Pad with zeros and a width of 5 chars.
String result = String.format("%1$05d %2$05d", i, i + 10);
System.out.println(result);
}
}
}
Output
00000 00010
00001 00011
00002 00012
00003 00013
00004 00014
Precision, double. We can specify the
precision of a double or oat. We use the
"f" to indicate a oating-point. Before this
we specify ".3" to mean "three numbers
after the decimal."
Note:
As this example shows, the "f" format
will round the number up, not truncate digits.
Java program that uses precision
public class Program {
public static void main(String[] args) {
double number = 1.23456;
// Specify precision with format.
String value = String.format("Three numbers after decimal: %1$.3f",
number);
System.out.println(value);
}
}
Output
Three numbers after decimal: 1.235
Insert strings. We can insert a string
with the "s" format. This example
shows three dierent syntax forms. We
can specify just "%s," use the
percentage sign "%," or use a "$" in
between.
Index:
It helps to use an index to reference the argument (like "%1") if
we reuse the argument, or the references are dierent in order.
Opinion:
I think just using "%s" when possible yields the clearest,
easiest-to-read code. Keep it simple.
Java program that inserts string with format
public class Program {
2 de 6 09/05/17 15:33
Java String.format Examples: Numbers and Stri... https://www.dotnetperls.com/format-java
public static void main(String[] args) {
String first = "Marcus";
String last = "Aurelius";
// Use simple string format.
String value = String.format("%s %s", first, last);
System.out.println(value);
// Use indexes before simple string format.
value = String.format("%1s %2s", first, last);
System.out.println(value);
// Use $ symbol before string character.
value = String.format("%1$s %2$s", first, last);
System.out.println(value);
}
}
Output
Marcus Aurelius
Marcus Aurelius
Marcus Aurelius
Argument order. This example uses both a
string and an integer in one format string. It
also inserts the second argument rstit
uses the "%2" syntax for this.
Java program that reorders arguments
public class Program {
public static void main(String[] args) {
String id = "ART1";
int number = 100;
// Place the last argument first.
// ... Use integer and string in same format string.
String value = String.format("%2$d %1$s", id, number);
System.out.println(value);
}
}
Output
100 ART1
Padding, right and left. Here we use
right-padding and left-padding in a format
string. We can apply padding to strings,
numbers or other values.
Padding
Right:
To specify padding on the right (ten
spaces on the right) we use -10s. The result string is 10 chars.
Left:
To add padding to the left (right justify text) to 10 chars, we use
10s. No plus sign is used.
Java program that uses padding, right and left
3 de 6 09/05/17 15:33
Java String.format Examples: Numbers and Stri... https://www.dotnetperls.com/format-java
public class Program {
public static void main(String[] args) {
String[] lefts = { "cat", "dog", "bird", "elephant" };
String[] rights = { "orange", "black", "blue", "grey" };
// Loop over both arrays and display paired strings.
for (int i = 0; i < lefts.length; i++) {
String left = lefts[i];
String right = rights[i];
// Add padding to the right.
// ... Add padding to the left.
String value = String.format("%1$-10s %2$10s", left, right);
System.out.println(value);
}
}
}
Output
cat orange
dog black
bird blue
elephant grey
Calendar. This example uses
String.format with a Calendar date. We
use "tB" to insert he long month string
(like January). With "te" and "tY" we
insert the day and year numbers.
Calendar
Note:
We use the "%1" at the start of the insertion points to indicate
"the rst argument" after the format string.
Java that uses format, Calendar
import java.util.Calendar;
public class Program {
public static void main(String[] args) {
// Create a calendar with a specific date.
Calendar cal = Calendar.getInstance();
cal.set(2015, 0, 15);
// Format the month, day and year into a string.
String result = String.format("Month: %1$tB Day: %1$te Year: %1$tY",
cal);
System.out.println(result);
}
}
Output
Month: January Day: 15 Year: 2015
Months, days, years. This example shows
various ways of formatting months, days,
and years with String.format. We specify
formatting with uppercase or lowercase
letters after the "t."
4 de 6 09/05/17 15:33
Java String.format Examples: Numbers and Stri... https://www.dotnetperls.com/format-java
Month:
The uppercase "B" is along month name
like February. The lowercase "b" is a
short name like Feb. And "m" means the month number.
Day:
With "A" we use the long day name like Wednesday. With "a" we
specify the short name like Wed. The "d" is a day number.
Year:
An uppercase Y is the long year like 2015. A lowercase "y" is a
two-digit year. A "j" is the day number in an entire year.
Java that formats months, days and years
import java.util.Calendar;
public class Program {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
cal.set(2015, 1, 18);
// Format the month.
String result = String.format("Month: %1$tB %1$tb %1$tm", cal);
System.out.println(result);
// Format the day.
result = String.format("Day: %1$tA %1$ta %1$td", cal);
System.out.println(result);
// Format the year.
result = String.format("Year: %1$tY %1$ty %1$tj", cal);
System.out.println(result);
}
}
Output
Month: February Feb 02
Day: Wednesday Wed 18
Year: 2015 15 049
Hour, minute and second. This is
starting to become confusing. Here
we format hours, minutes and
seconds with String.format. Hours
can be formatted in many ways.
Hours:
We use the chars "HIkl" to format
hours. The H means 2-digits on the 24-hour clock. The "k" is the
same as H but has no leading 0.
Hours, 12-hour:
The 12-hour clock requires the uppercase letter I in the format.
With "l" we have the same thing but with no leading 0.
AM/PM:
The dierence between AM and PM is critical in life. With the
lowercase p format code we get am and pm strings.
Java that formats hour, minute, second, AM and PM
5 de 6 09/05/17 15:33
Java String.format Examples: Numbers and Stri... https://www.dotnetperls.com/format-java
import java.time.Instant;
import java.util.Calendar;
import java.util.Date;
public class Program {
public static void main(String[] args) {
// Set time to current time.
Calendar cal = Calendar.getInstance();
cal.setTime(Date.from(Instant.now()));
// Format the hour.
String result = String.format("Hour: %1$tH %1$tI %1$tk %1$tl", cal);
System.out.println(result);
// Format minute.
result = String.format("Minute: %1$tM", cal);
System.out.println(result);
// Format the second.
result = String.format("Second: %1$tS", cal);
System.out.println(result);
// Format the am and pm part.
result = String.format("AM/PM: %1$tp", cal);
System.out.println(result);
}
}
Output
Hour: 18 06 18 6
Minute: 53
Second: 23
AM/PM: pm
Filenames. Sometimes we have a
program that generates les on a
regular basis (on a schedule). We can
generate lenames with String.format
that contain the current date and time.
Filename Date
A summary. With String.format, a format
string is used to insert values (as from
variables). We add punctuation and text
data in between insertions.
Advanced features. With format, we can
change how numbers are displayed. We
can pad with zeros and change how far
past the decimal place we go. This is
powerful and useful.
6 de 6 09/05/17 15:33