字符串a =“” AND字符串b =“”不一样吗?

时间:2019-06-12 10:19:13

标签: c# string winforms

在网上搜索时发现,如果字符串包含“空格”,则该字符串不是空字符串!

所以:

.txt

我的问题是:

1)我怎样才能使string a = ""; string b= " "; if(a==b) { MessageBox.Show("I want them to be the same"); } else { MessageBox.Show("They are not the same thing!"); } a=""成为同一个人?

2)为什么当我从数据库中填充字符串b=" "时,为什么我在数据库中只是一个空单元格而添加了这个“空格”?

1 个答案:

答案 0 :(得分:1)

不,

一个字符串,其中wich被声明为字符串。Empty或“”与带有“”的字符串不同。 空格是一个字符,并且在字符串中,不再为null或为空。

您可以检查它:

这个告诉它是Null还是Empty(“”)

string a;
string b = string.Empty;
string c = "";
string d = "     ";

if(string.IsNullOrEmpty(HERE))
{
// a b and c will be true, d will be false
}

if(string.IsNullOrWhiteSpace(HERE))
{
// a b c and d will be true.
}

因此,请回答您的问题: 1)您永远不会,因为那是不一样的。 您可以临时修剪空白以使其为空。 喜欢:

var temp = StringWithWhiteSpace.Replace(" ", string.Empty);

,然后检查它是否为Null或Empty,并使用临时字符串。

if(string.IsNullOrEmpty(temp))
{
}

或直接检查字符串。IsNullOrWhiteSpace()

2)这意味着您的数据库中有空格,并且它不是一个空单元格。 如果您使用的话,可以删除数据库中的所有空白单元格

UPDATE tableName SET columnName='' WHERE columnName='   ';

如果每个“空”单元格具有相同数量的空格。 如果没有,你可以看这里: SQL query - filter out field containing only spaces