Javascript 到 java 代码不工作

标签 javascript java

嗨,我正在尝试将此 JavaScript 代码转换为 Java,但我似乎无法做到这一点,我陷入了最后一部分,我需要将 JavaScript 代码转换为 Java 加密部分。

JavaScript 代码:

Encrypt = function (strIn) {
    var strOut = String();
    var lenIn = strIn.length;
    var i = 0;
    var numRand;
    while (i < lenIn) {
        numRand = Math.floor(Math.random() * 66) + 36;
        strOut += (strIn.charCodeAt(i) + numRand).toString(27) + numRand.toString(27);
        i++;
    }
    return strOut;
};

Java 代码:

public static String Encrypt(String strIn) {

    String strOut = null;
    int lenIn = strIn.length();
    int i = 0;

    double numRand;

    while (i < lenIn) {
        numRand = Math.floor(Math.random() * 66) + 36;
        strOut += (strIn.charAt(i) + numRand).toString(27) + numRand.toString(27);
        i++;
    }
    return strOut;
}

这行代码有错误:

strOut += (strIn.charAt(i) + numRand).toString(27) + numRand.toString(27);

错误:

Error:(22, 50) java: double cannot be dereferenced

我似乎无法说出为什么任何帮助都是美妙的。

非常感谢。

最佳答案

您遇到的问题是 double 是原始类型(以及 charint),因此它没有toString() 方法(在 Java 中属于 Object)。为了更深入地挖掘,您的错误消息提示 double 的原因是因为您的 numRand 变量的类型为 double,因此由于转换 strIn.charAt(i ) + numRand 也变为 double 。

相反,您可以使用诸如Integer.toString(value, radix)之类的东西,它是Integer的静态成员。修改后的代码可能看起来像......

strOut += Integer.toString((int)(strIn.charAt(i) + (char)numRand), 27) + 
          Integer.toString((int)numRand, 27);

关于Javascript 到 java 代码不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33296252/

相关文章:

javascript - 如何在另一个创建的元素中附加元素

java - 自动提交开关的并发症

javascript - 如何将下拉菜单和文本值传递到我的电子邮件?

javascript - 带有 document.getElementById 的 Google map 中心无法正常工作

java - 即使所有参数都准确,仍获取 'ParseException: invalid login parameters'

java - NetBeans:无法启动 Tomcat ("The system cannot find the file specified")

java - Java 中是否有任何 LinkedTreeMap 实现?

java - 将 ArrayList 字符串值转换为字节数组

javascript - 通过变量访问属性时出现语法错误?

javascript - 使 SVG 线条显示为动画 "following"线条