获取字符串的最后3个字符

时间:2016-02-29 03:16:57

标签: c#

如何从给定字符串中仅获取最后3个字符?

示例输入:AM0122200204

预期结果:204

4 个答案:

答案 0 :(得分:72)

可以通过多种方式实现这一目标。

简单方法应该是输入字符串的SubString

var result = input.Substring(input.Length - 3);

使用Regular Expression提取最后3个字符的另一种方法。

var result = Regex.Match(input,@"(.{3})\s*$");

工作Demo

答案 1 :(得分:13)

最简单的方法是使用FALSE

Substring

在我放置时使用一个string str = "AM0122200204"; string substr = str.Substring(str.Length - 3); 的重载将获得int的{​​{1}},从索引substring开始。在你的情况下是string,因为你想得到最后三个字符。

答案 2 :(得分:2)

来自 C# 8 Indices and ranges

“AM0122200204”字符串的最后 3 位数字:

"AM0122200204"[^3..]

答案 3 :(得分:0)

随着 C# 7.3 和 .NET Core 2.1 中 Span 的引入,我们现在有了一种无需额外内存分配即可实现此任务的额外方法。代码如下所示:

var input = "AM0122200204";

var result = input
    .AsSpan()
    .Slice(input.Length - 3);

在传统代码中,每次字符串操作都会在堆上创建一个新字符串。当在编译器或解析器中进行大量基于字符串的操作时,这很快就会成为瓶颈。

在上面的代码中,.AsSpan() 创建了一个安全的、类似数组的结构,指向原始字符串中所需的内存区域。生成的 ReadOnlySpan 被库中的许多方法重载所接受。

例如,我们可以使用 int.Parse 解析最后 3 位数字:

int value = int.Parse(result)