1

我有以下字符串:

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

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

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

4

4 回答 4

2
int length = (temp ?? "").Length;
string subString = "";
if(length == 8 || length == 10)
{
   subString = temp.Substring(length - 4);
}
于 2012-07-07T05:55:38.877 回答
2

您可以使用 IsNullOrEmpty,如果字符串为空或空,则子字符串是不可能的。

if (!String.IsNullOrEmpty(str) && (str.Length == 8 || str.Length == 10)) 
{
    string substr = str.Substring(str.Length-4);
}
于 2012-07-07T05:56:41.997 回答
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;
    }
于 2012-07-07T05:57:50.770 回答
0

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

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

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

于 2012-07-07T07:08:37.390 回答