我正在寻求帮助创建一个哈希函数,该函数将从字符串输入用户数据并将其转换为整数值,同时跳过空格。我很难理解它为什么不能正常工作,以及如何让它获得可以输入的空白区域,并希望得到帮助。
代码:
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);
答案 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以获取有关此任务的帮助。
如果您正确完成任务,hashA
,hashB
和hashC
将彼此相等。