You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中从含三个姓名的字符串移除指定姓名的实现疑问

处理三姓名字符串的三个拆分任务

先给个通用思路:把原始字符串拆成单个姓名的数组,这种方式比硬写索引更灵活易读,同时也提供字符串索引的实现方式供你选。

任务1:移除第一个姓名(你已实现,补充数组版)

你的代码完全没问题,这里给个数组拆分的实现,逻辑更清晰:

string name = "Hunter Georgie Martin";
// 按空格拆分,自动忽略空项(避免多个空格的情况)
string[] nameParts = name.Split(new[] {' '}, StringSplitOptions.RemoveEmptyEntries);
// 跳过第一个元素,拼接剩下的内容
string noFirstName = string.Join(" ", nameParts.Skip(1));
Console.WriteLine(noFirstName); // 输出:Georgie Martin

任务2:移除第二个姓名

数组实现法(推荐)

直接取第一个和第三个姓名拼接即可:

string name = "Hunter Georgie Martin";
string[] nameParts = name.Split(new[] {' '}, StringSplitOptions.RemoveEmptyEntries);
string noMiddleName = $"{nameParts[0]} {nameParts[2]}";
// 如果后续姓名数量可能变化,也可以用通用写法:
// string noMiddleName = string.Join(" ", nameParts.Take(1).Concat(nameParts.Skip(2)));
Console.WriteLine(noMiddleName); // 输出:Hunter Martin

字符串索引实现法

通过定位两个空格的位置,截取前后部分拼接:

string name = "Hunter Georgie Martin";
int firstSpacePos = name.IndexOf(' ');
int secondSpacePos = name.IndexOf(' ', firstSpacePos + 1);
string noMiddleName = name.Substring(0, firstSpacePos) + " " + name.Substring(secondSpacePos + 1);
Console.WriteLine(noMiddleName); // 输出:Hunter Martin

任务3:移除第三个姓名

数组实现法

取前两个姓名拼接:

string name = "Hunter Georgie Martin";
string[] nameParts = name.Split(new[] {' '}, StringSplitOptions.RemoveEmptyEntries);
string noLastName = string.Join(" ", nameParts.Take(2));
Console.WriteLine(noLastName); // 输出:Hunter Georgie

字符串索引实现法

定位最后一个空格的位置,截取前面的内容:

string name = "Hunter Georgie Martin";
int lastSpacePos = name.LastIndexOf(' ');
string noLastName = name.Substring(0, lastSpacePos);
Console.WriteLine(noLastName); // 输出:Hunter Georgie

内容的提问来源于stack exchange,提问作者user15004061

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 17:01:25