编程语言: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等效项,但它会产生一个荒谬的数字,并且我无法正确地显示它。
我意识到我可以使用这个错误的值来设计哈希函数,但是为了不产生可能的冲突(我不知道这些是否会产生唯一的错误值),并且为了学习的缘故,您能指出如何统一处理不同机器上的中文字符输入吗?
非常感谢您的想法。 :D
Baggio.
String
的哈希码?为什么要把char
强制转换成int
来搞这些事情? - artbristol