Replace方法不';t将短划线替换为空字符串
本文关键字:替换 字符串 方法 Replace | 更新日期: 2023-09-27 18:21:59
我正在尝试使用SHA1对文件进行哈希。结果如下:B7-DB-B9-93-E7-2F-6F-EB-6D-CD-CC-A8-DE-D2-F1-01-6E-8A-53-BC
如何将破折号替换为空字符串或删除它们?
代码试图替换破折号,但似乎没有改变任何内容,破折号仍然存在。
using (HashAlgorithm hashSHA1 = new SHA1Managed())
using (Stream file = new FileStream(ofdBrowse.FileName, FileMode.Open, FileAccess.Read))
{
byte[] hash = hashSHA1.ComputeHash(file);
txtSHA1.Text = BitConverter.ToString(hash).Replace("-", "");
}
短划线和连字符之间的区别?http://msdn.microsoft.com/en-us/library/3a733s97.aspx
不太确定。只是我在黑暗中的猜测。
您给的代码肯定会删除短划线。简短但完整的程序来证明:
using System;
using System.IO;
using System.Security.Cryptography;
class Test
{
static void Main(string[] args)
{
using (HashAlgorithm hashSHA1 = new SHA1Managed())
{
// Actual data doesn't matter
using (Stream data = new MemoryStream())
{
byte[] hash = hashSHA1.ComputeHash(data);
Console.WriteLine(BitConverter.ToString(hash).Replace("-", ""));
}
}
}
}
所以,你的问题的潜在原因:
- 你没有运行你认为的构建
- 您有其他代码可以进行哈希处理,但没有调用
Replace
- 你看错了UI的位置:)
很难真正猜测其中哪一个(或其他任何东西)是问题所在,但代码不是吗…