将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());
}
展开
 我来答
wapku
2014-05-07 · 超过48用户采纳过TA的回答
知道小有建树答主
回答量:100
采纳率:0%
帮助的人:117万
展开全部
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());
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式