【问题标题】:Get the size of a string [duplicate]获取字符串的大小[重复]
【发布时间】:2014-04-23 12:47:19
【问题描述】:

我想知道如何计算字符串数据类型的大小。 说下面场景下s的大小是多少?

string s="";
string s="1";
string s="12";

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

【问题讨论】:

  • 定义“尺寸”?字符数? Unicode点数? (这不一定相同)尚未指定的编码下的字节数?像素数?几毫米?组成string 实例的字节数?
  • 如果你问的是字符数,那么我认为你应该给自己买一本 c# 书并在发布任何内容之前阅读它,因为这些是绝对基础。

标签: c#


【解决方案1】:

参考此链接:How to know the size of the string in bytes?

System.Text.Encoding.Unicode.GetByteCount(s);
System.Text.Encoding.ASCII.GetByteCount(s);

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

【讨论】:

  • 对。只是想指出,他将不得不根据他拥有的字符串使用编码:)
  • @BoasEnkler:你这是什么意思? .NET 中的字符串没有任何编码的概念;或者更确切地说,“本机”表示始终是 UTF-16。好像没有“UTF-8 字符串”这样的东西。
  • 是的,你的权利。我混淆了这样一个事实,即在文件中他可能有不同的编码,但在.net中阅读它们。将再次以 UTF-16 结尾。我的错误:)
【解决方案2】:

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

如果您的意思是多少个字符,那么Length 就是您要查找的属性

"".Length   // 0
"1".Length  // 1
"12".Length // 2

如果按大小表示多少字节,那么这取决于编码,您可以使用 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

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

Int32.Parse("")   // FormatException: Input string was not in a correct format
Int32.Parse("1")  // 1
Int32.Parse("12") // 12

【讨论】:

  • OP 要求的是字符串的大小,而不是长度,这是有区别的。
  • @SnakeEyes OP 可能没有使用正确的词。您的答案涉及一种可能性,我的另一种可能性。我确实在我的回答“如果按大小表示多少个字符”的第一部分澄清了这一点。
  • 我认为对于size 表示how many kilobytes 使用,对于length 包含多少个字符。
  • 他提到:size of string data type,不是字符串作为值。
  • 在OP澄清他/她的答案之前,我们所能做的就是猜测他们的意图!
【解决方案3】:

请使用下面的代码

long size=sizeof(char) *s.length; 

【讨论】:

    【解决方案4】:

    LMGTFY

    Anything and Everything 字符串 http://msdn.microsoft.com/en-us/library/system.string.aspx

    字符串长度 http://msdn.microsoft.com/en-us/library/system.string.length.aspx

    字符串字节数(示例中涵盖了字符串到字节数组) http://msdn.microsoft.com/en-us/library/w3739zdy(v=vs.110).aspx

    【讨论】:

      猜你喜欢
      • 2018-09-08
      • 2015-12-03
      • 1970-01-01
      • 2011-12-24
      • 2021-05-24
      • 2016-05-04
      • 2015-01-04
      • 2013-08-12
      • 2020-09-16
      相关资源
      最近更新 更多