Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果C#中的字符串可能为空,我如何获取该字符串的子字符串和长度?_C# - Fatal编程技术网

如果C#中的字符串可能为空,我如何获取该字符串的子字符串和长度?

如果C#中的字符串可能为空,我如何获取该字符串的子字符串和长度?,c#,C#,我有以下字符串: var temp = null; var temp = ""; var temp = "12345678"; var temp = "1234567890"; 我需要做的是如果有一个函数,如果输入变量是8或10个字符长,它将给我输入变量的最后四位数字。否则我需要它返回“” 有没有一种简单的方法可以在C#中实现这一点。我只是不确定如何处理null,因为如果我得到null的长度,那么我认为这会给我一个错误。您可以使用IsNullOrEmpty,就像字符串为null或空一样,那么子

我有以下字符串:

var temp = null;
var temp = "";
var temp = "12345678";
var temp = "1234567890";
我需要做的是如果有一个函数,如果输入变量是8或10个字符长,它将给我输入变量的最后四位数字。否则我需要它返回“”


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

您可以使用IsNullOrEmpty,就像字符串为null或空一样,那么子字符串是不可能的

int length = (temp ?? "").Length;
string subString = "";
if(length == 8 || length == 10)
{
   subString = temp.Substring(length - 4);
}
if (!String.IsNullOrEmpty(str) && (str.Length == 8 || str.Length == 10)) 
{
    string substr = str.Substring(str.Length-4);
}

您可以使用IsNullOrEmpty,就好像字符串为null或空一样,那么子字符串是不可能的

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

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;
    }
试试这个

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;
    }

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

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

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

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

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

从所有的答案可以看出,有多种方法可以实现这一点。

谢谢@SnealkTheep,这是一次严重的失误。谢谢@SnealkTheep,这是一次严重的失误。