Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.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# 如何将string.empty替换为“0”_C# - Fatal编程技术网

C# 如何将string.empty替换为“0”

C# 如何将string.empty替换为“0”,c#,C#,正如标题所说 我试过做str.Replace,0;但它给了我错误,因为oldValue的长度为零 是否可以将string.Empty替换为其他内容 编辑: 我正在维护一个程序,我遇到该程序正在调用一个方法,该方法将返回一个字符串,然后转换为Int32 int x=Convert.toInt32Method1 public string Method1() { string retString = string.Empty; //Do Something ret

正如标题所说

我试过做str.Replace,0;但它给了我错误,因为oldValue的长度为零

是否可以将string.Empty替换为其他内容

编辑:

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

int x=Convert.toInt32Method1

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

Replace接受两个字符串参数oldValue和newValue。您指定了新值0,但是空字符串对旧值无效

请尝试以下代码:-

str.Replace(" ","0"); 
或者,您也可以将0分配给空字符串,如下所示:-

if(str == string.Empty)
{
   str = "0";
}
或者简单一点:-

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

如果您知道str为空,则可以使用star=a 如果要检查,则在If条件中写入语句。

不能替换字符串中的空字符串,但可以替换,例如,空格,例如

也可以用0替换空字符串:

将字符串解析为int时,可以执行以下操作:

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

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

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

  return int.Parse(s);
}
试试这个

public string Method1()
{
      string retString = string.Empty;
      //Do Something
      return string.IsNullOrEmpty(retString)?"0":retString;
}
在方法中,您可以执行以下操作:

return String.IsNullOrEmpty(retString) ? "0" : retString;
您可以使用以下一行代码简单地为null、零长度或空白字符串返回0:

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

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

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

无法将string.Empty替换为0。它将抛出一个异常

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

听起来最好的选择是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
}

你到底是什么意思?每个字符串都包含无限多个空字符串。。。你能给出输入和输出的样本吗?例如,如果str If xy,您希望结果是什么?您只是在寻找类似于If str==str=0;?如果是这样,那根本不是string.Replace的作用。如果没有,请更新您的问题。Jack,您是否知道不需要编写自己的方法来将字符串转换为int32?已经有int.Parse、int.TryParse和您提到的Convert。ToInt32@Sayse-你好。我在Convert.ToInt32上遇到了一个错误,这就是为什么我认为我需要在返回之前将string.empty替换为零…@JackFrost-我已经创建了一个答案,说明如何使用int.TryParse它应该更适合您的要求。它不会引发异常,但也不会执行OP想要的操作。
if(retString == string.Empty)
{
retString = "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);