【发布时间】:2017-05-21 14:18:28
【问题描述】:
我正在开发一个多平台应用程序,我已经完成了数据库和网络版本。为了检查网络版本的代码,我从数据库中得到一个散列版本并比较两者。我使用这个 javascript 代码来散列(我在 another question 上找到了这个):
hashCode = function(s){
return s.split("").reduce(function(a,b){a=((a<<5)-a)+b.charCodeAt(0);return a&a},0);
}
现在我需要在我的 android 应用程序中做同样的事情,但我不知道如何制作一个在 java 或 kotlin 中输出相同的函数。有谁知道如何做到这一点或有其他跨平台香草解决方案?
提前致谢。
编辑: 我对 kotlin/java 很陌生,所以我只知道我可以在网上找到什么以及我对其他语言的了解。我试图消除尽可能多的错误,但有些事情我只是不知道,它仍然给出错误:
fun go (a: Int, b: String): Int {
var a = ((a shl 5) - a) + Character.codePointAt(b,0);
return a and a
} // this part doesn't give any errors now.
fun hashCode(s: String): String {
return s.split("").reduce(go(a,b)) // I don't know what to pass as parameters + reduce gives an error
}
【问题讨论】:
-
当然这是用Java编写的一种简单方法。你试过什么? (请不要将我们视为“免费编写我的代码”服务!)
-
@StephenC 我没有添加我所拥有的,因为它可能是非常糟糕的代码并且它不起作用。不过我现在加了。
标签: javascript java android hash kotlin