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

Swift中解析字符串提取姓氏的实现方法咨询

提取固定格式姓名中的姓氏

嘿,这个问题其实很好解决,不用纠结索引位置~ 既然你的输入格式固定是“名 姓”(单空格分隔),这里有两种简单可靠的方法帮你提取姓氏:

方法1:用split()分割后取最后一项

利用字符串的split()方法按空格把姓名拆成数组,然后取数组的最后一个元素就是姓氏。这种写法简洁直观,完全不需要关心索引:

let str = "Fred Bloggs";
let lastName = str.split(' ').pop(); // 得到 "Bloggs"

let secondStr = "William Wright";
let secondLastName = secondStr.split(' ').pop(); // 得到 "Wright"

如果以后你的输入格式扩展成带中间名的情况(比如"Mary Ann Smith"),这个方法依然能正确提取最后面的姓氏,兼容性拉满。

方法2:用lastIndexOf()定位空格后截取

先找到字符串中最后一个空格的位置,再从这个位置的下一位开始截取到字符串末尾,同样能精准拿到姓氏:

let str = "Fred Bloggs";
let spacePos = str.lastIndexOf(' ');
let lastName = str.slice(spacePos + 1); // "Bloggs"

let secondStr = "William Wright";
let secondSpacePos = secondStr.lastIndexOf(' ');
let secondLastName = secondStr.slice(secondSpacePos + 1); // "Wright"

这种方法的优势是避免了创建数组,对于性能敏感的场景更友好,当然在普通业务场景下两种方法差别不大。

小提醒:因为你明确说了输入格式是固定的“名 姓”,所以两种方法都能完美适配。要是以后格式有变化,优先选上面两种通用型的写法,不用改代码就能应对~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:31:35