如果该字符串可能为null,我怎样才能在C#中获取字符串的子字符串和长度?

时间:2012-07-07 05:50:12

标签: c#

我有以下字符串:

var temp = null;
var temp = "";
var temp = "12345678";
var temp = "1234567890";

如果输入变量为8或10个字符,如果有一个函数可以给出输入变量的最后四位数,我需要做的是。否则我需要它返回"";

我是否有一种简单的方法可以在C#中实现这一点。我只是不确定如何处理null因为如果我得到null的长度,那么我认为这会给我一个错误。

4 个答案:

答案 0 :(得分:2)

int length = (temp ?? "").Length;
string subString = "";
if(length == 8 || length == 10)
{
   subString = temp.Substring(length - 4);
}

答案 1 :(得分:2)

您可以使用IsNullOrEmpty,如果string为null或Empty,则无法使用子字符串。

if (!String.IsNullOrEmpty(str) && (str.Length == 8 || str.Length == 10)) 
{
    string substr = str.Substring(str.Length-4);
}

答案 2 :(得分:1)

试试这个

string YourFunctionName(string input)
    {
        string rVal = "";
        if (string.IsNullOrEmpty(input))
            return rVal;
        if (input.Length == 8 || input.Length == 10)
            rVal = input.Substring(input.Length - 4);
        return rVal;
    }

答案 3 :(得分:0)

如果写一个函数,我可能会这样写:

string GiveMeABetterName (string input) {
    if (input != null
          && (input.Length == 8 || input.Length == 10)) {
        return input.Substring(input.Length - 4);
    } else {
        return "";
    }
}

从所有答案中可以看出,有多种方法可以实现这一目标。