字符串操作在任意编程语言的日常编程中都随处可见,不定时记录C#下常用的字符串操作。
标准格式化用法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| string.Format("{0:000000}",1234);
string.Format("{0:######}",1234); string.Format("{0:#0####}",1234); string.Format("{0:0#0####}",1234);
string.Format("{0:000.000}", 1234); string.Format("{0:000.000}", 4321.12543);
string.Format("{0:0,0}", 1234567);
string.Format("{0:0%}",1234); string.Format("{0:#%}", 1234.125); string.Format("{0:0.00%}",1234); string.Format("{0:#.00%}",1234.125);
|
内置快捷字母格式化用法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| (25000).ToString("E");
(2.5).ToString("C");
(25).ToString("D5");
(25).ToString("F2");
(2.52).ToString("G2");
(2500000).ToString("N");
(255).ToString("X");
|
ToString
也可以自定义补零格式化
1 2 3 4 5
| (15).ToString("000"); (15).ToString("value is 0"); (10.456).ToString("0.00"); (10.456).ToString("00"); (10.456).ToString("value is 0.0");
|
转换为二进制、八进制、十六进制输出
1 2 3 4
| int number = 15; Convert.ToString(number, 2); Convert.ToString(number, 8); Convert.ToString(number, 16);
|
自定义格式化器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| public class CustomFormat : IFormatProvider, ICustomFormatter { public string Format(string format, object arg, IFormatProvider formatProvider) { if (!this.Equals(formatProvider)) { return null; } if (format == "Reverse") { return string.Join("", arg.ToString().Reverse()); } return arg.ToString(); }
public object GetFormat(Type formatType) { return formatType == typeof(ICustomFormatter) ? this : null; } }
|
使用自定义格式化器
1 2
| String.Format(newCustomFormat(), "-> {0:Reverse} <-", "Hello World");
|
字符串拼接
将数组中的字符串拼接成一个字符串
1 2 3
| var parts = new[] { "Foo", "Bar", "Fizz", "Buzz"}; var joined = string.Join(", ", parts);
|
字符串内插法
带日期格式化
1 2
| var date = DateTime.Now(); var str = $"Today is {date:yyyy-MM-dd}!";
|
字母格式化
1 2 3
| var amount = 2.5; var str = $"It costs {amount:C}";
|