StringFormatting.md 2.8 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
# 在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);
```