Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Variable widths in Java's String.format method

I'm working on a project in which I need to display textual trees. I'm trying to use Java's String.format method to simplify the formatting process, but I ran into trouble when trying to apply variable widths.

Current I have a variable (an int) which is called depth.

I try to do the following:

String.format("%"+depth+"s"," ") + getOriginalText() + "\n";

However I get the following error.

java.util.FormatFlagsConversionMismatchException: Conversion = s, Flags = 0

Any suggestions on how to do this, or should I just settle for loops?

Thanks for the help!

like image 411
Phillip Huff Avatar asked Dec 09 '12 05:12

Phillip Huff


1 Answers

This works:

int depth = 5;
String str= "Hello"+ String.format("%"+depth+"s"," ") + "world" + "\n";
System.out.println(str);

It prints 5 while spaces in between.

Hello     World.

Please check you code and make sure that depth is assigned with a valid int value. Most likely that (invalid value in depth) is the problem.

like image 156
Yogendra Singh Avatar answered Sep 17 '22 20:09

Yogendra Singh