如何将string.empty替换为" 0"

时间:2014-09-09 05:51:44

标签: c#

就像标题所说的那样。

我尝试过str.Replace("","0");,但它给了我错误,因为oldValue的长度为零。

是否可以将string.Empty替换为某些内容?

编辑:

我正在维护一个程序,我遇到程序正在调用一个方法,它将返回一个字符串,然后转换为Int32。

int x = Convert.toInt32(Method1());

public string Method1()
{
      string retString = string.Empty;
      //Do Something
      return retString
}

10 个答案:

答案 0 :(得分:2)

String.Replace接受两个字符串参数oldValue和newValue。您指定了newValue 0,但是对于oldValue,空字符串不合法。

尝试以下代码: -

str.Replace(" ","0"); 

或者您只需将“0”分配给emptry string,如下所示: -

if(str == string.Empty)
{
   str = "0";
}

或简单化: -

String.IsNullOrWhiteSpace(str) ? "0" : str;

答案 1 :(得分:1)

你不能在字符串中替换 空字符串,但你可以替换 spaces ,例如

  str = str.Replace(" ", "0"); // providing str is not null

或者您可以"0"替换空字符串:

  if (String.IsNullOrEmpty(str))
    str = "0";

解析 stringint时,您可以执行以下操作:

  int x = String.IsNullOrEmpty(str) ? 0 : Convert.ToInt32(str);

答案 2 :(得分:1)

在方法()中你可以这样做:

return String.IsNullOrEmpty(retString) ? "0" : retString;

答案 3 :(得分:1)

您只需使用此单行返回"0"为null,零长度或空白字符串:

return String.IsNullOrWhiteSpace(str) ? "0" : str;

答案 4 :(得分:1)

如果要检查值是否为空,然后将值设置为零,否则使用默认值,如果是这样,可以使用内联:

return string.IsNullOrWhiteSpace(retString ) ? "0" : retString;

答案 5 :(得分:0)

如果您知道str为空,那么您可以使用star =“a” 如果你想检查if语句中的write语句。

答案 6 :(得分:0)

编辑后:

要将空字符串转换为0,并将非空字符串解析为整数,我根本不会处理"0",而是将两者合并为一个方法。例如:

int Parse(string s, int d = 0) {
  if (string.IsNullOrEmpty(s))
    return d;

  return int.Parse(s);
}

答案 7 :(得分:0)

试试这个...

public string Method1()
{
      string retString = string.Empty;
      //Do Something
      return string.IsNullOrEmpty(retString)?"0":retString;
}

答案 8 :(得分:0)

无法用" 0"替换string.Empty。它将抛出ArgumentException。

    An unhandled exception of type 'System.ArgumentException' occurred in mscorlib.dll.
Additional information: String cannot be of zero length.

您可以尝试以下代码:

if(retString == string.Empty)
{
retString = "0";
}

答案 9 :(得分:0)

听起来你最好的选择是int.TryParse,如果你遇到一个无法设置为有效值的字符串,它会将它设置为整数(0)的默认值为以及返回一个布尔值,这样你就可以知道这已经发生了。

int myInt;
if(!int.TryParse(myStringVariable, out myInt))
{
    //Invalid integer you can put something here if you like but not needed
    //myInt has been set to zero
}
//The same code without the if statement, still sets myInt
int.TryParse(myStringVariable, out myInt);