如何根据变量值使用空间?

时间:2015-08-06 09:07:04

标签: c# string

我有一个这样的字符串:

mystring = "A:\"" + var1 + var2 + var3 + "\"";

var1 var2和var3有时会变为null,有时会得到字符串。当变量得到字符串时,mystring会像这样返回:

A:"var1valuevar2valuevar3value"

我需要这样展示:

A:"var1value var2value var3value"

我试过这样:

mystring = "A:\"" + var1 + " " + var2 + " " + var3 + "\"";

它正在工作但是当变量变为null时,它会像这样返回:

A:" var2value var3value"

如何删除不必要的空格?如果变量为null,我不需要在两个变量或第一个字符之间有空格。

4 个答案:

答案 0 :(得分:3)

您可以使用LINQ过滤掉空白,并使用string.Join连接它们:

string s = string.Join( " "
                      , new string [] {var1, var2, var3}
                            .Where(x => !string.IsNullOrEmpty(x))
                      )

答案 1 :(得分:1)

检查空值是否是你的字符串:

mystring = "A:\"" + GetString(var1) + GetString(var2) + GetString(var3, true) + "\"";

public string GetString(string str, bool isLast = false)
{
   if (isLast)
       return str;
   return String.IsNullOrEmpty(str) ? "" : str + " ";
}

答案 2 :(得分:1)

使用此

mystring = "A:\"" + (!String.IsNullOrEmpty(var1) ? (var1 + " ") : "") + (!String.IsNullOrEmpty(var2) ? (var2 + " ") : "") + (!String.IsNullOrEmpty(var3) ? (var3 + " ") : "") + "\"";

答案 3 :(得分:0)

使用以下

string mystring = "A:\"" + AddSpace(var1) + AddSpace(var2) + var3 + "\"";

        public string AddSpace(String var)
        {
             return var == null ? "" : var + " ";
        }