Java:哈希函数输入字符串

时间:2016-10-24 20:35:09

标签: java string hash hashcode

我正在寻求帮助创建一个哈希函数,该函数将从字符串输入用户数据并将其转换为整数值,同时跳过空格。我很难理解它为什么不能正常工作,以及如何让它获得可以输入的空白​​区域,并希望得到帮助。

代码:

public static void main(String[] args) {
    Scanner inScan;
    String inStr;
    int outHash;

    inScan = new Scanner(System.in); // Assignment of Scanner

    System.out.print("Enter string to create hash: "); // Asks for String Input
    inStr = inScan.nextLine(); // String Input

    // Start of Hash Function
    String hashValue = inStr;
    hashValue = inStr.hashCode();
    System.out.println(hashValue);

1 个答案:

答案 0 :(得分:1)

您的代码在未更改的hashCode()上调用inStr。在调用inStr之前,您应该清除hashCode中的空格,以确保仅在空格中不同的字符串的哈希码是相同的:

String a = "a bc";
String b = "ab c";
String c = "a b c";
int hashA = a.<remove-white-space>.hashCode();
int hashB = b.<remove-white-space>.hashCode();
int hashC = c.<remove-white-space>.hashCode();

<remove-white-space>是你需要写的东西。请咨询this Q&A以获取有关此任务的帮助。

如果您正确完成任务,hashAhashBhashC将彼此相等。