
将C#代码转换成JAVA代码
publicstaticvoidDecrypt(byte[]p){byte[]data=p;stringkey="qmfaktnpgjs";StringBuildersb...
public static void Decrypt(byte[] p)
{
byte[] data = p;
string key = "qmfaktnpgjs";
StringBuilder sbd = new StringBuilder();
for (int i = 0; i < data.Length; i++)
{
if (data[i] != 0 && data[i] != key[i % 11])
{
sbd.Append(data[i] ^ key[i % 11]);
}
else
{
sbd.Append(data[i]);
}
sbd.Append(" ");
}
Console.WriteLine(sbd.ToString());
} 展开
{
byte[] data = p;
string key = "qmfaktnpgjs";
StringBuilder sbd = new StringBuilder();
for (int i = 0; i < data.Length; i++)
{
if (data[i] != 0 && data[i] != key[i % 11])
{
sbd.Append(data[i] ^ key[i % 11]);
}
else
{
sbd.Append(data[i]);
}
sbd.Append(" ");
}
Console.WriteLine(sbd.ToString());
} 展开
1个回答
展开全部
public static void Decrypt(byte[] p)
{
byte[] data = p;
string key = "qmfaktnpgjs";
StringBuilder sbd = new StringBuilder();
int length = data.length; //获取数组长度,无需每次循环都计算
for (int i = 0; i < length; i++)
{
if (data[i] != 0 && data[i] != key[i % 11])
{
sbd.append(data[i] ^ key[i % 11]);
}
else
{
sbd.append(data[i]);
}
sbd.append(" ");
}
System.out.println(sbd.toString());
}
C# 和 Java 的有着异曲同工之妙,只需修改一些方法大小写及语句即可- -.
追问
错误: 需要数组, 但找到String
if (data[i] != 0 && data[i] != key[i % 11])
追答
为什么每次都要打开 eclipse 。。
1、既然参数中已经传入一个字节型数组,data 变量就可省了:
public static void Decrypt(byte[] data)
{
String key = "qmfaktnpgjs";
StringBuilder sbd = new StringBuilder();
int length = data.length; //获取数组长度,无需每次循环都计算
for (int i = 0; i < length; i++)
{
sbd.append((data[i] != 0 && data[i] != key.charAt(i % 11)) ? data[i] ^ key.charAt(i % 11) : data[i]);
sbd.append(" ");
}
System.out.println(sbd.toString());
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询