假设我有一个字符串:
"34234234d124"
我想要得到这个字符串的最后四个字符,这个字符串是“d124”。我可以使用SubString,但它需要几行代码,包括命名一个变量。
是否有可能在c#的一个表达式中得到这个结果?
假设我有一个字符串:
"34234234d124"
我想要得到这个字符串的最后四个字符,这个字符串是“d124”。我可以使用SubString,但它需要几行代码,包括命名一个变量。
是否有可能在c#的一个表达式中得到这个结果?
当前回答
对我来说,使用范围操作符是最简单的方法。不需要太多代码。
在你的情况下,你可以得到你想要的:
// the ^ operator indicates the element position from the end of a sequence
string str = "34234234d124"[^4..]
其他回答
一个简单的解决方案是:
string mystring = "34234234d124";
string last4 = mystring.Substring(mystring.Length - 4, 4);
下面是另一个应该不会太糟糕的替代方案(因为延迟执行):
新的字符串(mystring.Reverse (), (4) .Reverse () .ToArray ());
虽然mystring.Last(4)的扩展方法显然是最干净的解决方案,尽管要做更多的工作。
mystring = mystring.Length > 4 ? mystring.Substring(mystring.Length - 4, 4) : mystring;
定义:
public static string GetLast(string source, int last)
{
return last >= source.Length ? source : source.Substring(source.Length - last);
}
用法:
GetLast("string of", 2);
结果:
of
string var = "12345678";
if (var.Length >= 4)
{
var = var.substring(var.Length - 4, 4)
}
// result = "5678"