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

如何用String.Split方法拆分字符串提取个人名、姓、出生地信息

字符串拆分需求与代码修复

我需要拆分以下内容:

string text = "John.Davidson/Belgrade Michael.Barton/Krakow Ivan.Perkinson/Moscow";

需要从该记录中分别提取以下数据:

  • 名字
  • 姓氏
  • 出生地

换句话说,要使用String类的方法处理该字符串,分别提取每个人的信息,核心是将字符串拆分为多个部分。

现有如下代码,需要完善以实现需求:

string text = " John.Davidson/Belgrade Michael.Barton/Krakow Ivan.Perkinson/Moscow";

string[] textArray = text.Split('"', ' ');
Console.WriteLine("Date: ");

foreach (string str in textArray)
{
    for (int i = 0; i < textArray.Length; i++)
    {
        string[] FirstName = textArray[i].Split(' ');                  
        string[] LastName = textArray[i].Split('.');
        string[] BirthPlace = textArray[i].Split('/');
        Console.WriteLine($"First name: {FirstName} Last Name: {LastName} BirthPlace: {BirthPlace}");
    }
}

问题分析

原代码存在几个明显问题:

  1. 拆分文本时包含了无意义的'"'分隔符,原字符串中没有双引号,会导致拆分出空字符串;
  2. 嵌套循环完全多余,外层foreach已经在遍历数组,内层循环重复处理所有元素;
  3. 拆分逻辑错误,没有针对性提取对应字段,直接输出数组会显示类型名而非实际内容。

修复后的代码

string text = " John.Davidson/Belgrade Michael.Barton/Krakow Ivan.Perkinson/Moscow";

// 先去除首尾空格,再按空格拆分,同时自动移除空项
string[] personEntries = text.Trim().Split(' ', StringSplitOptions.RemoveEmptyEntries);

Console.WriteLine("人员信息:");

foreach (string entry in personEntries)
{
    // 按/拆分,分离姓名段和出生地
    string[] namePlaceSplit = entry.Split('/');
    string birthPlace = namePlaceSplit[1];
    
    // 对姓名段按.拆分,得到名字和姓氏
    string[] nameSplit = namePlaceSplit[0].Split('.');
    string firstName = nameSplit[0];
    string lastName = nameSplit[1];
    
    Console.WriteLine($"First name: {firstName} Last Name: {lastName} BirthPlace: {birthPlace}");
}

代码说明

  • Trim():清理字符串首尾的空格,避免拆分出无效空项;
  • Split(' ', StringSplitOptions.RemoveEmptyEntries):按空格拆分人员条目,自动过滤拆分产生的空字符串;
  • 分层拆分:先通过/分离出生地和姓名组合,再通过.拆分姓名组合得到名字和姓氏,确保每段信息精准提取;
  • 直接输出提取到的具体字符串值,而非数组对象。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 11:30:56