String formatting with variable number of arguments in java

Consider a string.

String Str = "Entered number = %d and string = %s"

Let us say I have a list of objects

List<Objects> args = new ArrayList<Objects>();
args.add(1);
args.add("abcd");

Is there any way in which I can substitute these args into Str , so that i get a string like "Entered number = 1 and string = abcd " ?

By generalizing this I was planning to dump all the questions and arguments in a file (like json) and execute them at run time. Please do let me know if there are better ways to do this.

Answers


Try:

String formatted = String.format(str, args.toArray());

This gives:

Entered number = 1 and string = abcd

You can use the following:

    String str = "Entered number = %d and string = %s";

    List<Object> args = new ArrayList<Object>();
    args.add(1);
    args.add("abcd");

    System.out.println(String.format(str, args.toArray()));

will give the output

Entered number = 1 and string = abcd

From JLS 8.4.1 Format parameters

The last formal parameter in a list is special; 
it may be a variable arity parameter, indicated by an 
elipsis following the type.

If the last formal parameter is a variable arity parameter of type T, 
it is considered to define a formal parameter of type T[]. 
The method is then a variable arity method. Otherwise, it is a fixed arity 
method. Invocations of a variable arity method may contain more actual 
argument expressions than formal parameters. All the actual argument 
expressions that do not correspond to the formal parameters preceding 
the variable arity parameter will be evaluated and the results stored 
into an array that will be passed to the method invocation.

See this question on StackOverflow!


final String myString = String.format(Str, 1, "abcd");

Use variables as appropriate


Need Your Help

Prestashop 1.5 Tools::getPageName error when _PS_DEBUG_PROFILING_ enabled

php prestashop prestashop-1.5

I am trying to tweak Prestashop productivity, but when I enable

improving on collision detection

c++ collision-detection game-engine collision game-physics

I have two functions that I will be using to check collisions between objects on the screen, as these functions are things that are going to be executed a lot I would like to ensure they run at max...

About UNIX Resources Network

Original, collect and organize Developers related documents, information and materials, contains jQuery, Html, CSS, MySQL, .NET, ASP.NET, SQL, objective-c, iPhone, Ruby on Rails, C, SQL Server, Ruby, Arrays, Regex, ASP.NET MVC, WPF, XML, Ajax, DataBase, and so on.