Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

String.Format or Not? [duplicate]

Duplicate from : String output: format or concat in C#?

Especially in C# world using String.Format for everything is really common, normally as VB.NET developer unless I have to* I don't String.Format,

I prefer normal string concatenation, such as:

V1 = V2 & "test-x" & V3 & "-;"

to me it's better than this:

V1 = String.Format("{0} test-x {1} -;", V2, V3)

Am I missing something? Or is this just a personal preference?

Reasons to Use String.Format (From The Answers) (I'll try to keep this up to date)

  • Localization is so much easier if you use String Format
  • Obviously it's easier to change the format of input
  • It's more readable (however this is personal)
  • Better Performance

**Sometimes I need to change the style or replacing stuff dynamically then I use String.Format*

like image 952
dr. evil Avatar asked Dec 08 '08 14:12

dr. evil


People also ask

What is the point of string formatting?

String formatting uses a process of string interpolation (variable substitution) to evaluate a string literal containing one or more placeholders, yielding a result in which the placeholders are replaced with their corresponding values.

Is string format faster than StringBuilder?

Put another way, using StringBuilder here is over 40 TIMES faster than String. format() . This is probably quite a bit bigger difference than most Java developers would have guessed.

Is string format slow Java?

Avoid using String. format() when possible. It is slow and difficult to read when you have more than two variables.

What is string format for double?

String. format("%4.3f" , x) ; It means that we need total 4 digits in ans , of which 3 should be after decimal . And f is the format specifier of double .


2 Answers

If you're ever going to localize your application (and it's often hard to rule that out at the start), then String.Format is to be much preferred, for two reasons:

  1. You have only one string literal to translate
  2. You can change the order of the values, which may make more sense in another language.
like image 58
Will Dean Avatar answered Oct 26 '22 23:10

Will Dean


Everyone has posted about how readable string.format is (which I accept, and it has null ref and internationalisation benefits yes) but nobody has mentioned that it's considerably slower than simple string concatenation (small number of elements) or using StringBuilder (large number of concats).

If performance matters or you're doing a large number of operations (so performance soon will matter) then you should avoid format.

Edit: References as requested ;)

http://msmvps.com/blogs/jon_skeet/archive/2008/10/06/formatting-strings.aspx

http://blog.briandicroce.com/2008/02/04/stringbuilder-vs-string-performance-in-net/

like image 36
annakata Avatar answered Oct 27 '22 00:10

annakata