获取字符串的大小

pul*_*ulk -2 c#

我想知道如何计算字符串数据类型的大小.说在以下情况下s的大小是多少?

string s="";
string s="1";
string s="12";
Run Code Online (Sandbox Code Playgroud)

如果可能,可以指向一个提到这个的网站吗?

Sna*_*yes 6

请参考此链接:如何知道字符串的大小(以字节为单位)?

System.Text.Encoding.Unicode.GetByteCount(s);
System.Text.Encoding.ASCII.GetByteCount(s);
Run Code Online (Sandbox Code Playgroud)

或者来自msdn:http://msdn.microsoft.com/en-us/library/system.string.aspx


dav*_*v_i 5

从你的问题中不清楚你的意思。

如果按大小表示有多少个字符,那么Length就是您要查找的属性

"".Length   // 0
"1".Length  // 1
"12".Length // 2
Run Code Online (Sandbox Code Playgroud)

如果按大小表示多少字节,那么这取决于编码,您可以使用 Snake Eyes 给出的答案

Encoding.Unicode.GetByteCount("")   // 0
Encoding.UTF8.GetByteCount("")      // 0

Encoding.Unicode.GetByteCount("1")  // 2
Encoding.UTF8.GetByteCount("1")     // 1

Encoding.Unicode.GetByteCount("12") // 4
Encoding.UTF8.GetByteCount("12")    // 2
Run Code Online (Sandbox Code Playgroud)

如果按大小表示数字的值,则需要解析文本

Int32.Parse("")   // FormatException: Input string was not in a correct format
Int32.Parse("1")  // 1
Int32.Parse("12") // 12
Run Code Online (Sandbox Code Playgroud)

  • OP 要求字符串的大小,而不是长度,是有区别的。 (2认同)