如何从给定字符串中仅获取最后3个字符?
示例输入:AM0122200204
预期结果:204
答案 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)
答案 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)