跪求empty string 是怎么回事,该怎么改

如题所述

将String类型数据转化为double类型的时候,你的String类型的变量值为空

解决方法:只需要在转化类型前加一个条件,使得String类型不为空就可以了,s.Length == 0 优于 s == string.Empty 优于 s == ""

扩展资料:

1.string类函数1) =, s.assign() // 赋以新值 

2. swap() // 交换两个字符串的内容 

3. +=, s.append(), s.push_back() // 在尾部添加字符

4. s.insert() // 插入字符 

5. s.erase() // 删除字符

6. s.clear() // 删除全部字符

7. s.replace() // 替换字符 

8. + // 串联字符串 

9. ==,!=,<,<=,>,>=,compare() // 比较字符串 

10.size(),length() // 返回字符数量 

11. max_size() // 返回字符的可能最大个数 

12.s.empty() // 判断字符串是否为空 

13. s.capacity() // 返回重新分配之前的字符容量

14. reserve() // 保留一定量内存以容纳一定数量的字符 

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-10-29
出现这种情况,极有可能是你在将String类型数据转化为double类型的时候,你的String类型的变量值为空,此时你只需要在转化类型前加一个条件,使得String类型不为空就好了。
第2个回答  2016-11-28
String.Empty是string类的一个静态常量;
String.Empty和string=””区别不大,因为String.Empty的内部实现是:
public static readonly string Empty;
//这就是String.Empty 那是只读的String类的成员,也是string的变量的默认值是什么呢?

//String的构造函数
static String(){
Empty = "";//Empty就是他""
WhitespaceChars = new char[] {
'\t', '\n', '\v', '\f', '\r', ' ', '\x0085', '\x00a0', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
' ', ' ', ' ', ' ', '', '\u2028', '\u2029', ' ', ''
};

}

再看一段代码:
string s1 = "";
string s2 = string.Empty;
if (s1 == s2)<br>{
Console.WriteLine("一模一样!");
}
// 结果都是True
Console.WriteLine("".Equals(string.Empty));
Console.WriteLine(object.ReferenceEquals(string.Empty, ""));

既然String.Empty和string=””一样,同样需要占用内存空间
string.Empty只是让代码好读,防止代码产生歧义,比如说:
string s = ""; string s = " "; 这个不细心看,很难看出是空字符串还是空格字符。

如果判断一个字符串是否是空串,使用
if(s==String.Empty)和if(s==””)的效率是一样的,但是最高效的写法是if(s.Length==0)
string.IsNullOrEmpty的内部实现方式:

public static bool IsNullOrEmpty(string value)<br>{<br> if (value != null)
{
return (value.Length == 0);
}
return true;
}本回答被提问者采纳
相似回答