加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 两个字符串的比较

发布时间:2020-12-15 04:54:18 所属栏目:Java 来源:网络整理
导读:我有以下代码: 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; 基本上这个代码假设要做的是测试字符串h的inverse是否等于string s,反之亦然.
我有以下代码:

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;

基本上这个代码假设要做的是测试字符串h的inverse是否等于string s,反之亦然.由于某种原因,总会返回“假” – 尽管明显的答案是正确的.

谁能告诉我我的代码有什么问题?

谢谢!

解决方法

我会说一个额外的;是罪魁祸首.

代替

if (s.charAt(i) != h.charAt(t--));

使用

if (s.charAt(i) != h.charAt(t--))

你应该总是走“安全”的路线.也就是说,在if-else语句之后使用大括号(几乎可以在任何地方使用它们),所以这样的错误不会发生在第一位.写它的正确方法是:

if (s.charAt(i) != h.charAt(t--)) {
   g++;
}

顺便说一句,如果你不先检查s和h的长度相同,你的代码就会爆炸.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读