编程语言:Java 任务:设计一个将中文字符串映射到数字的哈希函数问题:正确阅读和显示汉字
这是一道作业题,但我不是在问怎么做,只是在阅读汉字时遇到了困难。
我的任务的简短描述:设计一个散列函数,将我们班的(中国)学生姓名映射到他们的学生 ID 和其他卫星数据(性别、电话等)。
我仍在考虑它,但就像其他语言一样,这涉及到我使用字符的字符编码来通过哈希函数得出一个唯一值,如果我没记错的话。
以下是我必须测试这种思路的有效性的内容:
// test whether console can read chinese characters
Scanner s = new Scanner(System.in);
System.out.print("Please enter a Chinese character: ");
int chi = (int)s.next().toCharArray()[0];
System.out.println("\nThe string entered is " + chi);
如果我使用简单的 System.out.println("character") 语句,则会显示正确的字符。
但如上所示,如果我使用 Scanner 读取输入,我尝试将 String 转换为 char 数组,然后转换为它的 int unicode 等价物,但它给出了一个荒谬的数字,我无法正确显示它。
我意识到我可以使用这个错误值来设计一个哈希函数,但是为了不产生可能的冲突(我不知道这些是否会产生 UNIQUE 错误值),并且为了学习,你能指出如何我可以在不同的机器上统一输入汉字吗?
永远感谢你的想法。:D
巴乔。