ISJ*_*ISJ 3 java string reverse
我有以下代码:
int t = s.length()-1;
int g = 0;
for (int i=0; i < s.length(); i++){
if (s.charAt(i) != h.charAt(t--));
g++;
}
if (g==0)
return true;
else
return false;
Run Code Online (Sandbox Code Playgroud)
基本上这个代码假设要做的是测试字符串h的inverse是否等于string s,反之亦然.由于某种原因,总会返回"假" - 尽管明显的答案是正确的.
谁能告诉我我的代码有什么问题?
谢谢!
我要说额外的;是罪魁祸首.
代替
if (s.charAt(i) != h.charAt(t--));
Run Code Online (Sandbox Code Playgroud)
使用
if (s.charAt(i) != h.charAt(t--))
Run Code Online (Sandbox Code Playgroud)
你应该总是走"安全"的路线.也就是说,在if-else语句之后使用大括号(几乎可以在任何地方使用它们),所以这样的错误不会发生在第一位.写它的正确方法是:
if (s.charAt(i) != h.charAt(t--)) {
g++;
}
Run Code Online (Sandbox Code Playgroud)
顺便说一句,如果你不先检查s并且h长度相同,你的代码就会爆炸.