Is it possible to specify some kind of flag or modifier on a string format param to make it lower case or upper case?
Example of what I want:
String.Format("Hi {0:touppercase}, you have {1} {2:tolowercase}.", "John", 6, "Apples");
Wanted output:
Hi JOHN, you have 6 apples.
PS: Yes I know that I can change the case of the param before using it in the string format, but I don't want this.
C programming language is a machine-independent programming language that is mainly used to create many types of applications and operating systems such as Windows, and other complicated programs such as the Oracle database, Git, Python interpreter, and games and is considered a programming foundation in the process of ...
In the real sense it has no meaning or full form. It was developed by Dennis Ritchie and Ken Thompson at AT&T bell Lab. First, they used to call it as B language then later they made some improvement into it and renamed it as C and its superscript as C++ which was invented by Dr.
What is C? C is a general-purpose programming language created by Dennis Ritchie at the Bell Laboratories in 1972. It is a very popular language, despite being old. C is strongly associated with UNIX, as it was developed to write the UNIX operating system.
C is a general-purpose language that most programmers learn before moving on to more complex languages. From Unix and Windows to Tic Tac Toe and Photoshop, several of the most commonly used applications today have been built on C. It is easy to learn because: A simple syntax with only 32 keywords.
There's only padding and allignment formating... So the easy way is like you said, use "John".ToUpper()
or "John".ToLower()
.
Another solution could be create a custom IFormatProvider
, to provide the string format you want.
This is how will look the IFormatProvider
and the string.Format call.
public class CustomStringFormat : IFormatProvider, ICustomFormatter { public object GetFormat(Type formatType) { if (formatType == typeof(ICustomFormatter)) return this; else return null; } public string Format(string format, object arg, IFormatProvider formatProvider) { string result = arg.ToString(); switch (format.ToUpper()) { case "U": return result.ToUpper(); case "L": return result.ToLower(); //more custom formats default: return result; } } }
And the call will look like:
String.Format(new CustomStringFormat(), "Hi {0:U}", "John");
In short, no; AFAIK you'd have to fix the source values, or use your own replacement to string.Format
. Note that if you are passing in a custom culture (to string.Format
) you may want to use culture.TextInfo.ToLower(s)
, rather than just s.ToLower()
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With