【问题标题】:How do i compare a byte[] to string?我如何将字节 [] 与字符串进行比较?
【发布时间】:2009-07-08 03:27:01
【问题描述】:

我想将 byte[] 中的前几个字节与字符串进行比较。我该怎么做?

【问题讨论】:

  • 你能举个例子说明你正在尝试做什么吗?

标签: c# string bytearray


【解决方案1】:

您必须知道字节数组的编码才能正确比较它们。

例如,如果你知道你的字节数组是由 UTF-8 字节组成的,那么你可以从字节数组中创建一个字符串:

System.Text.UTF8Encoding enc = new System.Text.UTF8Encoding();
string s = enc.GetString(originalBytes);

现在您可以将字符串 s 与其他字符串进行比较。

相反,如果只想比较前几个字节,可以将字符串转换为 UTF8 字节数组:

System.Text.UTF8Encoding enc = new System.Text.UTF8Encoding();
byte[] b = enc.GetBytes(originalString);

现在您可以将字节数组 b 与其他字节数组进行比较。

还有其他几个用于 ASCII、Unicode 等的编码对象。See the MSDN page here.

【讨论】:

  • 比较字节而不是字符串不是更有效吗?!
  • @Josh:你认为字符串比较是什么?担心这可能是一个微优化。
  • 我的意思是投射,而不是比较。我的错。
  • @Josh - 有趣!我写完答案后,我的问题和你一模一样! (在我的脑海里,它也有一个“?!” - 不是开玩笑!)
【解决方案2】:

使用

byte [] fromString = Encoding.Default.GetBytes("helloworld");

【讨论】:

    猜你喜欢
    • 2019-02-27
    • 1970-01-01
    • 1970-01-01
    • 2022-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-21
    • 2017-02-20
    相关资源
    最近更新 更多