当前位置: 首页 > 知识库问答 >
问题:

回文java错误[重复]

沈健
2023-03-14

我在Java方面有个问题。我正在制作一个程序来检查给定的文本是否有回文。我99%确定我的代码是正确的,但我不能得到一个好的结果。这是代码。

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    StringBuilder sb = new StringBuilder();

    System.out.print("Enter a line of text to check if palindrome: ");
    String text = scan.nextLine();
    String revText = text.replaceAll("[^A-Za-z]", "").toLowerCase().trim(); /*
                                                                      * Using regex here... everything that is not
                                                                      * (^) from A-Z (capital) to a-z replace with
                                                                      * ("") in revText.
                                                                      */
    sb.append(revText).reverse().toString();

    System.out.println("Reversed: " + sb);
    System.out.println("Normal: " + revText);

    System.out.println(sb.equals(revText));

    scan.close();
}

例如,我输入:

Enter a line of text to check if palindrome: Anna2023
Reversed: anna 
Normal: anna
false

为什么是假的/

共有2个答案

景明诚
2023-03-14

StringBuilder类不会重写对象类中的equals方法。因此,它的equals方法将检查对象引用是否相同,如果它们相同,则只返回true。在String类的情况下,它重写对象类中的equals方法,并检查两个字符串的内容是否相等。

在代码中,您正在调用StringBuilder对象上的equals方法,由于两个引用不同,因此返回false。将其转换为字符串,然后调用equals()

System.out.println(sb.toString().equals(revText));

String和StringBuilder之间的Java等于

黄查猛
2023-03-14

尝试

System.out.println(revText.equals(sb.toString()));

sb不等于字符串,因为它不是字符串。它是一个用来构建字符串的容器。打印sb显示字符串的原因是系统。出来println将调用toString,处理任何赋予它的内容。

 类似资料:
  • 我是JS的学生。我有一段代码返回了一个错误。 这是返回的语法错误。你们能解释一下我做错了什么吗?

  • 昨天问了一个关于回文和Java的问题: Java回文程序(我是否在正轨上)? 在你的帮助下,我已经取得了一些进步(再次感谢你)。在测试代码之前,我还需要一件事的帮助。我正在使用Eclipse,我在一行上得到一个错误(我也将在下面的代码中包含这个错误作为注释)。我一直得到一个< I >“无法对数组类型String[]”调用charAt(int)。 有人知道这里发生了什么吗?我已经有一段时间没有使用J

  • 我尝试用docker运行一个简单的java类,执行以下步骤: > 创建java文件(helloworld.java) 编译它(javac helloworld.java) 创建dockerfile(位于dockerfile内容的上方) 然后我使用以下命令构建它: 这是我机器上的java版本: 顺便说一句,我在我的机器上用相同的java版本构建我的java文件,因此我不知道为什么错误说,HelloW

  • 我是servlet编程的新手。 下面是我的示例servlet代码 sample.java 我的问题 当我右键单击我的项目,然后单击时,我选择了服务器,它要求我选择一个服务器,然后我选择要运行的服务器。在eclipse窗口中,将打开一个浏览器窗口,其地址URL为http://localhost:8080/sample/ 当我单击时,会出现如下错误, HTTP状态404-/示例/欢迎 留言/示例/欢迎

  • 这是我代码的第一部分: 编译后,它告诉我行(和)上的“预期”:双f(双x){ 我做错了什么?我是java新手,如果还有其他重大错误,我很抱歉。我试图使用一个函数f(x),我相信它是按照我所展示的方式编写的,但我一直得到同样的错误。

  • 问题内容: 我正在运行的程序在这里上差异的物理机器2级的JVM。我得到了错误 我什至尝试在同一台机器(未更改的程序)上运行它,但是它可以在diff机器上运行。有人可以帮我吗? @ beny23-谢谢,但我仍然遇到此错误: 客户端如何拥有CalculatorImpl_stub的副本? 问题答案: 听起来您没有使用安全管理器: 您是否有政策文件(): 并使用运行您的程序