【发布时间】:2020-02-05 16:23:30
【问题描述】:
我必须使用 charAt() 函数比较两个字符串,如果字符串相同则返回 true,否则返回 false
public static boolean comparaStringhe(String word1, String word2) {
if (word1.length() == word2.length()) {
for (int i = 0; i < word1.length(); i++) {
for (int j = 0; j < word2.length(); j++) {
if (word1.charAt(i) == word2.charAt(j)) {
return true;
} else {
return false;
}
}
}
}
return false;
}
比较下列词语:
1. 测试 - 测试 /
2. 测试 - 测试 /
3. 测试 - 测试 /
4. 测试 - 测试
实际输出:
1. 真的
2.假
3. 真的
4. 真的
预期输出:
1. 真的
2.假
3.假
4.假的
【问题讨论】:
-
当第一个字符匹配时您不应该返回
true,您必须继续查看其余部分。此外,无需比较i != j的字符(实际上甚至不需要有两个循环)。 -
你只比较第一个字符然后返回true。请调试/单步调试您的代码,看看哪里出错了
-
在 word1.charAt(i) == word2.charAt(i) 之后我应该返回什么?我明白为什么我的程序无法运行,但我不明白如何解决它
-
为什么你有 2 个
fors?您首先从word1中获取char,然后与word2中的所有内容进行比较,然后将word1中的所有内容与word1中的所有内容进行比较... -
当 2 个字符相等时,您不会返回任何内容。基本上您可以执行以下操作:1)比较长度,如果它们不同,则返回 false 2)循环遍历字符并比较它们。当您在 same 索引处找到 2 个不同的字符时,您将返回 false 3) 如果到达末尾,则字符串相等,因此您返回 true。