gpt4 book ai didi

java - 无法获得将一个字符串中的字符与另一个字符串进行比较并返回 true 的 for 循环

转载 作者:行者123 更新时间:2023-12-01 19:53:56 26 4
gpt4 key购买 nike

因此,我收到了一个练习题,要求编写一个方法来将字符串验证代码与字符串 secret key 字符购买字符进行比较。 int ClaimValue 也必须匹配。如果字符匹配则返回 true,如果不匹配则返回 false。

代码编译良好。但无论我运行什么测试,它总是返回 false。有人可以指导我哪里出错了吗?

public boolean verifyWin(int claimValue, String verificationCode, String secretKey) {
int prize = 0;
for (int i = 1; i <= verificationCode.length(); i++) {
if (verificationCode.charAt(i - 1) == secretKey.charAt(i - 1)) {
prize = prize + 1;
} else {
prize = prize - 1;
}
}
if (prize == claimValue) {
return true;
} else {
return false;
}
}

测试是:

 //Test (1):

Lottery winner = new Lottery();

winner.setVerificationCode("HHHHHH");
winner.setSecretKey("HHHHHH");
winner.setClaimValue(1);

winner.verifyWin(1 , "HHHHHH", "HHHHHH");

returns false

//Test 2

Lottery winner = new Lottery();

winner.setVerificationCode("HHHH44");
winner.setSecretKey("HHHH44");
winner.setClaimValue(1);

winner.verifyWin(1 , "HHHH44", "HHHHH44");

returns false

最佳答案

我需要确切地知道你正在运行什么测试,因为当我复制你的代码时,当我期望时,我得到 true,当我期望时,我得到 false,当我期望时,我得到索引越界错误你的代码。

System.out.println(verifyWin(4, "test", "test")); // returns true
System.out.println(verifyWin(6, "test", "test")); // returns false
System.out.println(verifyWin(6, "test", "tester")); // returns false
System.out.println(verifyWin(6, "tester", "test")); // throws index out of bounds error

**编辑:我在您发布测试用例后完成了这篇文章,问题是您为 ClaimValue 分配的值。仅当 ClaimValue 变量设置为字符串应有的字符数时,您的代码才会返回 true。

winner.verifyWin(1 , "HHHHHH", "HHHHHH"); // returns false
winner.verifyWin(6 , "HHHHHH", "HHHHHH"); // returns true

关于java - 无法获得将一个字符串中的字符与另一个字符串进行比较并返回 true 的 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59058263/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com