c# - 将 C# 代码转换为 Java 代码

标签 c# java

我必须将这一小段 C# 代码转换为 Java:

const int AM = 65521;
int GetCCSufix(string a)
{            
    int c = 1, b = 0, d, e;
    var chars = a.ToCharArray();
    for(e =0; e< chars.Length; e ++)
    {
        d = chars[e];
        c = (c + d) % AM;
        b = (b + c) % AM;
    }
    return b << 16 | c;
}

我做到了:

private int getSuffix(String a) {
    int constant = 65521;
    int c = 1;
    int b = 0;
    int d = 0;
    int e = 0;
    for(e = 0; e < a.length(); e++){
        d = a.charAt(e);
        c = (c + d) % constant;
        b = (b + c) % constant;
    }
    return b << 16 | c;
}

但是,这似乎没有给我提供与 C# 代码相同的输出。我做错了什么?

最佳答案

我对原始代码进行了逐字翻译,看看这是否给出了正确的结果。您使用哪些值进行测试会给出不同的结果?

private static final int AM = 65521;

int getCCSuffix(String a) {
    int c = 1, b = 0, d = 0, e;
    char[] chars = a.toCharArray();
    for (e = 0; e < chars.length; e++) {
        d = chars[e];
        c = (c + d) % AM;
        b = (b + c) % AM;
    }
    return b << 16 | c;
}

关于c# - 将 C# 代码转换为 Java 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22020925/

相关文章:

c# - 异常捕获

java - Base 64 解码 byte[] 转换为字符串

java - 从数组中获取最大整数时遇到问题

java - 拦截器绑定(bind)不起作用

java - 旧曲结束后如何自动开始新曲

c# - razor - 检查参数是否为 null 并且列表是否有参数

c# - 基于 C# 中使用的坐标,使用 System.Drawing.Printing 在多个页面上打印图形

c# - 将 IPagedList 与复选框绑定(bind)为列表

c# - ILogger 显示不正确的货币符号

c# - 是否可以在 C++ 中序列化和反序列化对象?