C# 如何将string.empty替换为“0”
正如标题所说 我试过做str.Replace,0;但它给了我错误,因为oldValue的长度为零 是否可以将string.Empty替换为其他内容 编辑: 我正在维护一个程序,我遇到该程序正在调用一个方法,该方法将返回一个字符串,然后转换为Int32 int x=Convert.toInt32Method1C# 如何将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
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);