C#如何获取空格分隔字符串中的最后一个单词?
获取字符串最后一个单词的几种方法
好问题!你已经搞定了提取首个单词的逻辑,那获取最后一个单词其实可以用类似的思路,或者更灵活的方式,我给你拆解几种实用方案:
方法一:用LastIndexOf反向查找(和你取首个单词的思路呼应)
你之前用IndexOf找第一个空格的位置,那反过来可以用LastIndexOf从字符串末尾往前找最后一个空格的位置,再截取后面的内容。还要考虑**没有空格(整个字符串是一个单词)**的边界情况:
var longString = "Hello World"; var lastSpacePos = longString.LastIndexOf(" "); // 如果找不到空格,说明整个字符串就是最后一个单词;否则从空格后一位截取到末尾 var lastWord = lastSpacePos == -1 ? longString : longString.Substring(lastSpacePos + 1);
这种方法的优势是效率高,不需要分割整个字符串,适合处理长文本。
方法二:用Split分割后取最后一个元素
如果更在意代码的可读性,可以把字符串按空格分割成数组,直接取最后一个元素。记得加上StringSplitOptions.RemoveEmptyEntries来过滤掉空字符串(比如处理末尾有多个空格的情况):
var longString = "Hello World "; // 末尾有多个空格 var wordArray = longString.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); // 先判断数组是否为空(比如输入全是空格的情况),再取最后一个元素 var lastWord = wordArray.Length > 0 ? wordArray[^1] : string.Empty; // C# 8.0+ 可以用 ^1 代替 wordArray.Length -1
这种方法更直观,尤其适合需要同时处理多个单词的场景。
注意边界情况
两种方法都考虑了以下特殊场景:
- 字符串只有一个单词(比如
"Hello") - 字符串末尾有多个空格(比如
"Hello World ") - 字符串全是空格(返回空字符串)
内容的提问来源于stack exchange,提问作者user9710070
相关产品推荐
相关产品推荐

