最近,我开始使用SharpDevelop中的语言转换操作将一个大型项目从VB.net转换为C#,以获得一些先发优势。由于某种原因,转换器坚持采用所有大写的十六进制int文字:
&HDC8C60
并将它们设为小写:
0xdc8c60
我想将所有这些转换为大写,就像之前一样:
0xDC8C60
问题在于此项目中有数百个这样的文字。这是因为项目主要关注内存修改并将x86字节码注入一个特定的进程,并引用了许多特定的偏移量和值。因此,我想找到一种方法一次性全部利用。
我在Visual Studio的编辑器设置中随处可见,我浏览了所有Visual Studio的Edit
菜单命令,我已经搜索了Google和Stack Overflow。我所能找到的只是询问如何大写格式化十六进制字符串的问题。
如果我必须使用Visual Studio以外的程序,只要该程序是免费的,我就可以同时使用多个源文件。
答案 0 :(得分:0)
你可以这样做,并读取你的类并将字符串传递给方法,将所有小写文字转换为大写:
public void MD5(BufferedInputStream in, Key pubKey) throws Exception{
Mac md = Mac.getInstance("HmacMD5");
md.init(pubKey);
byte[] contents = new byte[1024];
int readSize;
while ((readSize = in.read(contents)) != -1) {
md.update(contents, 0, readSize);
}
byte[] hashValue = md.doFinal();
}
您可以像以下一样使用它:
public static String Convert(String input) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < input.Length; i++) {
if (i + 2 >= input.Length) {
sb.Append(input[i]);
break;
}
if (input[i] != '=' && input[i + 1] != '0' && (input[i + 2] != 'x' || input[i + 2] != 'X'))
{
sb.Append(input[i]);
}
else {
String temp = String.Empty;
while (input[i] != ';' && i < input.Length) {
temp += char.ToUpper(input[i]);
i++;
}
sb.Append(temp).Append(input[i]);
}
}
return sb.ToString();
}
然后保存。