I have a string, say:
String s = \"0123456789\";
I want to pad it with a formatter. I can do this two ways:
String.format(\
The - flag is for justification and doesn't seem to have anything to do with truncation.
The . is used for "precision", which apparently translates to truncation for string arguments.
I don't think format strings supports truncating from the left. You'll have to resort to
String.format("[%.5s]", s.length() > 5 ? s.substring(s.length()-5) : s);
You could also use method for manipulating Strings
substring(startindex, endIndex)
Returns a string object that starts a the specified index an goes to, but doesn't include, the end index.
And also could try to use StringBuilder class.
I hope this is what you need:
System.out.println("'" + String.format("%-5.5s", "") + "'");
System.out.println("'" + String.format("%-5.5s", "123") + "'");
System.out.println("'" + String.format("%-5.5s", "12345") + "'");
System.out.println("'" + String.format("%-5.5s", "1234567890.....") + "'");
output length is always 5:
' ' - filled with 5 spaces
'123 ' filled with 2 spaces after
'12345' - equals
'12345' - truncated
in addition:
System.out.println("'" + String.format("%5.5s", "123") + "'");
output:
' 123' filled with 2 spaces before