# 在C#中执行基本字符串格式设置 System.String是一个类,专门用于存储字符串,允许对字符串进行许多操作。由于这种数据类型非常重要,C#提供了它自己的关键字和相关的语法,以便于使用这个类来轻松地处理字符串。 String源码网址: https://referencesource.microsoft.com/#mscorlib/system/string.cs 使用运算符重载可以连接字符串: ```csharp string message1 = "Hello"; // return "Hello" message1 += ", CodeChina"; // return "Hello, CodeChina" string message2 = message1 + "!"; //return "Hello, CodeChina!" ``` C#还允许使用类似于索引器的语法来提取指定的字符: ```csharp string message1 = "Hello"; char char1 = message[1] // return 'e' ``` 这个类可以完成许多常见的任务,如替换字符、删除空白和把字母变成大写形式等等。可用的方法如下表所示(此表并不完整,只介绍部分字符串提供的常用功能)。 |方法|作用| |----|----| |Compare|比较字符串的内容,判断某些字符是否相等| |Concat |把多个字符串实例合并为一个实例| |Format |格式化包含各种值的字符串和如何格式化每个值的说明符| |IndexOf|定位字符串中第一次出现某个给定子字符串或字符的位置| |Insert |把一个字符串实例插入到另一个字符串实例的指定索引处| |Join |合并字符串数组,创建一个新字符串| |PadLeft|在字符串的左侧,通过添加指定的重复字符填充字符串| |Replace|用另一个字符或子字符串替换字符串中给定的字符或子字符串| |Split |在出现给定字符的地方,把字符串拆分为一个字符串数组| |Substring|在字符串中检索给定位置的子字符串| |ToLower|把字符串转换为小写形式| |ToUpper|把字符串转换为大写形式| |Trim |删除首位的空白| >注意如果Format想要输出'{'或'}',请这样string.Format("{{Hello}}"); 除了这些方法C#还提供了'@'和'$',@是可以忽略字符串的转义,$是可以把代码插到字符串中。 ```csharp int count = 6; string str1 = $"6{count}6"; // return "666" string str2 = @"6\r6\n6"; //return "6\r6\n6" ``` 以下程序中,不能使str3等于`"Hello, CodeChina!"`的是: ## 答案 ```csharp var str1 = "Hello, "; var str2 = "CodeChina!"; var str3 = "str1" + "str2"; ``` ## 选项 ### A ```csharp var str1 = "Hello, "; var str2 = "CodeChina!"; var str3 = str1 + str2; ``` ### B ```csharp var str1 = "Hello"; var str2 = "CodeChina"; var str3 = string.Format("{0}, {1]!", str1, str2); ``` ### C ```csharp var str1 = "Hello, "; var str2 = "CodeChina!"; var str3 = string.Concat(str1, str2); ``` |格式说明符|应用|含义|示例| |----------|----|----|----| |C|数字类型|特定地区的货币值|$666.00| |D|用于数字类型|一般的整数|666| |E|数字类型|科学计数法|6.660000E+002| |F|数字类型|小数点后的位数固定|666.00| |G|数字类型|一般的数字|666| |N|数字类型|通常是特定地区的数字格式|666.00| |P|数字类型|百分比计数法|66,600.00%| |X|只用于整数类型|十六进制格式|29A| 以下程序中,能让str1等于666.0的是: ## 答案 ```csharp string str1 = string.Format("{0:F1}", 666); ``` ## 选项 ### A ```csharp string str1 = string.Format("{0:N}", 666); ``` ### B ```csharp string str1 = string.Format("{0:C}", 666); ``` ### C ```csharp string str1 = string.Format("{0:D}", 666); ```