1

次の文字列があります。

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

私がする必要があるのは、入力変数の長さが 8 文字または 10 文字の場合に、入力変数の最後の 4 桁を取得する関数があるかどうかです。それ以外の場合は、「」を返す必要があります。

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を使用できます。文字列がnullまたは空であるかのように、サブ文字列は使用できません。

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 に答える