第十八式:C# 字符串 (文字狱)

绝世
秘籍
在江湖上行走,除了动刀动枪,还得会动嘴皮子。
字符串 (String) 就是用来处理文字的武功。它看似柔软,实则千变万化。

1. 字符串的本质 - 珍珠项链

string 其实就是一串只读的 char 数组。一旦创建,就不能修改(Immutable)。

如果你想修改它,实际上是创建了一个新的字符串,把旧的扔掉了。

2. 常用招式 - 巧舌如簧


string s = "Hello Jianghu";

// 1. 获取长度
int len = s.Length; // 13

// 2. 查找
int index = s.IndexOf("Jianghu"); // 6 (从第6个位置开始)

// 3. 截取 (切断项链)
string sub = s.Substring(6); // "Jianghu"

// 4. 替换 (偷梁换柱)
string newS = s.Replace("Jianghu", "World"); // "Hello World"

// 5. 分割 (大卸八块)
string list = "华山,嵩山,泰山";
string[] arr = list.Split(','); // 变成了数组 ["华山", "嵩山", "泰山"]
        
如果你需要频繁地修改字符串(比如拼接一万次),千万别用 + 号!
那会产生无数的垃圾,让 GC 累死。
请用 StringBuilder,它就像一个可伸缩的竹筒,效率极高。
📝

动手时刻:藏头诗

字符串 "华山论剑"。请编写代码:

  1. 判断它是否包含 "论剑"。
  2. 把它反转过来变成 "剑论山华"。(提示:可以先转成 char 数组,反转后再拼回去,或者用 Linq 的 Reverse)
查看参考答案

string s = "华山论剑";
bool hasIt = s.Contains("论剑"); // true

char[] chars = s.ToCharArray();
Array.Reverse(chars);
string reversed = new string(chars);

Console.WriteLine(reversed); // 剑论山华
                    

成就解锁:【文状元】 获得:判官笔