使用C#从字符串中提取最后一个单词

Pra*_*eep 29 .net c# string

我的字符串是这样的:

string input = "STRIP, HR 3/16 X 1 1/2 X 1 5/8 + API";
Run Code Online (Sandbox Code Playgroud)

实际上我想提取最后一个词'API'并返回.

进行上述提取的C#代码是什么?

ang*_*son 70

那么,天真的实现就是简单地拆分每个空间并采用最后一个元素.

使用String对象上的实例方法完成拆分,可以使用数组索引或使用Last LINQ运算符检索最后一个元素.

最终结果:

string lastWord = input.Split(' ').Last();
Run Code Online (Sandbox Code Playgroud)

如果你没有LINQ,我会在两个操作中完成:

string[] parts = input.Split(' ');
string lastWord = parts[parts.Length - 1];
Run Code Online (Sandbox Code Playgroud)

虽然这适用于此字符串,但它可能不适用于略有不同的字符串,因此您要么必须弄清楚如何相应地更改代码,或者发布所有规则.

string input = ".... ,API";
Run Code Online (Sandbox Code Playgroud)

这里,逗号将是"单词"的一部分.

此外,如果获取单词的第一种方法是正确的,即最后一个空格后的所有内容,并且您的字符串符合以下规则:

  • 将始终包含至少一个空格
  • 不以一个或多个空格结束(如果是这样,你可以修剪它)

然后,您可以使用此代码在堆上分配更少的对象,以便GC稍后担心:

string lastWord = input.Substring(input.LastIndexOf(' ') + 1);
Run Code Online (Sandbox Code Playgroud)

但是,如果你需要考虑逗号,分号和诸如此类的东西,那么使用分割的第一种方法是最好的; 跟踪的事情较少.


aba*_*hev 15

第一:

using System.Linq; // System.Core.dll
Run Code Online (Sandbox Code Playgroud)

然后

string last = input.Split(' ').LastOrDefault();

// or

string last = input.Trim().Split(' ').LastOrDefault();

// or

string last = input.Trim().Split(' ').LastOrDefault().Trim();
Run Code Online (Sandbox Code Playgroud)


小智 7

var last = input.Substring(input.LastIndexOf(' ')).TrimStart();

此方法不像其他字符串那样分配整个字符串数组.