java - 两个字符串的比较

标签 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;

基本上这段代码应该做的是测试字符串 h 的逆是否等于字符串 s,反之亦然。由于某种原因,总是返回“false”——尽管显而易见的答案是 true。

任何人都可以告诉我我的代码有什么问题吗?

谢谢!

最佳答案

我会说额外的 ; 是罪魁祸首。

代替

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

使用

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

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

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

顺便说一句,如果您不先检查 sh 是否具有相同的长度,您的代码就会崩溃。

关于java - 两个字符串的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5202562/

相关文章:

java - 获取结果集() "should be called only once per result"

c - 修改字符串数组

python - 如何使用字符或字符串作为放置在操作数之间的运算符?

c - 为什么这个反向字符串函数会出现段错误?

java-8 - 在 Java 8 流中使用返回 void 的函数

java - 为什么带有 jdk1.5 的 JAXB 2.0 无法识别以数字开头的字符串枚举?

java - 如何制作卡通风格的自定义对话框

Java:选项 -Xms 未立即应用?

javascript - 如何通过 Jquery/Javascript 知道以 px 为单位的占位符字符串宽度?

java - 编写反向字符串 O(N) 时间复杂度和 O(N) 空间复杂度的程序