c# - 帮我修复我的代码无法将其从 java 转换为 c#
问题描述
我有 java 的代码来解密这个
575-371-46b-576-362-276-528-634-731-330-53c-729-436
public static String decrypt(String str) {
str = str.replace("-", "");
String result = "";
for (int i = 0; i < str.length(); i += 3) {
result = result + ((char) (Integer.parseInt(str.substring(i + 1, i + 3), 16) ^ Integer.parseInt(String.valueOf(str.charAt(i)))));
}
return result;
}
我托盘转换为c#
private void button1_Click(object sender, EventArgs e)
{
String str= "575-371-46b-576-362-276-528-634-731-330-53c-729-436";
str = str.Replace("-", "");
String result = "";
for (int i = 0; (i < str.Length); i += 3)
{
result = (result + ((char)((int.Parse(str.Substring((i + 1), (i + 3)), 16) | int.Parse(String.valueOf(str[i]))))));
}
textBox1.Text = result; }
但我没有成功解密我得到很多错误的字符串,但我仍然是 C# 的初学者,我无法修复它
Error 1-'string' does not contain a definition for 'valueOf'
Error 2-Argument 2: cannot convert from 'int' to 'System.IFormatProvider'
Error 3- The best overloaded method match for 'int.Parse(string, System.IFormatProvider)' has some invalid ar`enter code here`guments
解决方案
这是您正在寻找的 C#:
result += (char)(int.Parse(str.Substring(i + 1, 2), System.Globalization.NumberStyles.HexNumber) ^ int.Parse(str[i].ToString()));
然而,这有点可怕。
我更喜欢 C# 中的这个:
var characters =
str
.Split('-')
.Select(x =>
int.Parse(x.Substring(1, 2), System.Globalization.NumberStyles.HexNumber) ^ (x[0] - '0'))
.Aggregate("", (a, c) => a + (char)c);
甚至:
string characters =
String
.Join(
"",
str
.Split('-')
.Select(x => new
{
head = x.Substring(0, 1),
tail = x.Substring(1, 2),
})
.Select(x => new
{
head = int.Parse(x.head),
tail = int.Parse(x.tail, System.Globalization.NumberStyles.HexNumber),
})
.Select(x => x.head ^ x.tail)
.Select(x => (char)x));
推荐阅读
- continuous-integration - 如何防止 GitLab CI/CD 删除整个构建
- flash - 使用 HARMAN 的 Adobe AIR SDK 以 64 位平台为目标时出错
- docker - 为 Nginx 反向代理后面的 Gitlab 实例设置 Let's Encrypt
- django - Django 'ManagementForm 数据丢失或已被篡改'外部多对多外键
- powershell - 解析子目录中的日志文件
- typescript - Vue2 + 组合 API - 动态模板引用
- python - Python将派生类组合到同一个基类?
- android - 当我删除我的 firebase 数据库上的记录时出现问题
- openpyxl - 写入现有的 xlsm 文件
- azure-devops-rest-api - 在 Azure Devops Rest API 中创建或更新工作项时如何设置工作项状态?