您的位置首页百科问答

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

跪求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() // 保留一定量内存以容纳一定数量的字符

出现这种情况,极有可能是你在将String类型数据转化为double类型的时候,你的String类型的变量值为空,此时你只需要在转化类型前加一个条件,使得String类型不为空就好了。

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)

{

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)

{

if (value != null)

{

return (value.Length == 0);

}

return true;

}