可变字符串StringBuilder、StringBuffer
String是不可变类,字符串都是常量,例如“ABC”会被存储在常量池中。对字符串进行任何更改操作都会产生新的String对象。
而StringBuilder与StringBuffer是可变类,它们的字符串对象可以更改,对可变字符串的操作不会生成新的对象,即对同一个字符串对象操作。
public static string HashString(Encoding encode, string sourceString)
{
byte[] source = md5.ComputeHash(encode.GetBytes(sourceString));
StringBuilder sBuilder = new StringBuilder();
for (int i = 0; i < source.Length; i++)
{
sBuilder.Append(source[i].ToString("x2"));
}
return sBuilder.ToString();
}
ToString("X2") 为C#中的字符串格式控制符
X为 十六进制
2为 每次都是两位数
比如 0x0A ,若没有2,就只会输出0xA
假设有两个数10和26,正常情况十六进制显示0xA、0x1A,这样看起来不整齐,为了好看,可以指定"X2",这样显示出来就是:0x0A、0x1A。