假设我有一个字符串:

"34234234d124"

我想要得到这个字符串的最后四个字符,这个字符串是“d124”。我可以使用SubString,但它需要几行代码,包括命名一个变量。

是否有可能在c#的一个表达式中得到这个结果?


当前回答

你可以使用扩展方法:

public static class StringExtension
{
    public static string GetLast(this string source, int tail_length)
    {
       if(tail_length >= source.Length)
          return source;
       return source.Substring(source.Length - tail_length);
    }
}

然后调用:

string mystring = "34234234d124";
string res = mystring.GetLast(4);

其他回答

string mystring = "34234234d124";
mystring = mystring.Substring(mystring.Length-4)
string var = "12345678";

if (var.Length >= 4)
{
    var = var.substring(var.Length - 4, 4)
}

// result = "5678"

这工作得很好,因为如果字符串中的字符比请求的数量少,也不会出现错误。

using System.Linq;

string.Concat("123".TakeLast(4));

定义:

public static string GetLast(string source, int last)
{
     return last >= source.Length ? source : source.Substring(source.Length - last);
}

用法:

GetLast("string of", 2);

结果:

of

建议使用TakeLast方法,例如:new String(text.TakeLast(4).ToArray())