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

回文数检查-输出问题

何兴学
2023-03-14

我试图编写一个程序来检查一个数字在Java中是否是回文。我试图将int转换为String,并使用内置方法编写了这个逻辑。但我不知道为什么给定输入的输出不正确。

class Main {
    public static void main(String[] args) {
        int x=1213;
        
        StringBuilder s= new StringBuilder();
        s.append(x);
        StringBuilder s2=new StringBuilder();
        s2=s.reverse();
       
        
        if((s.toString()).equals(s2.toString()))
        {
           System.out.println(x+" is a palindrome number");
        }
        else{
            System.out.println(x+"is not a palindrome number");
        }
    }

共有2个答案

景仲渊
2023-03-14

你调用s.reverse(),它在适当的位置反转s;将其分配给s2,因此ss2是同一个对象。

您根本不需要两个StringBuilder,因为您只需要进行一次修改

StringBuilder sb = new StringBuilder();
sb.append(x);
sb.reverse();
if (sb.toString().equals(String.valueOf(x))) {
    // the number is a palindrome
}
皇甫波峻
2023-03-14
 s2=s.reverse();

这里的StringBuilder类不是不可变的,反向操作将反向原来的StringBuilder的内容,你应该在这里构造一个新的StringBuilder:

public class Main {
public static void main(String[] args) {
    int x=1213;
    
    StringBuilder s= new StringBuilder();
    s.append(x);
    StringBuilder s2=new StringBuilder();
    s2=new StringBuilder(s).reverse();
   
    
    if((s.toString()).equals(s2.toString()))
    {
       System.out.println(x+" is a palindrome number");
    }
    else{
        System.out.println(x+"is not a palindrome number");
    }
}
}
 类似资料:
  • 本文向大家介绍MATLAB检查C ++ MEX文件中的输入/输出数量,包括了MATLAB检查C ++ MEX文件中的输入/输出数量的使用技巧和注意事项,需要的朋友参考一下 示例 在此示例中,我们将编写一个基本程序,该程序检查传递给MEX函数的输入和输出的数量。 首先,我们需要创建一个实现“ MEX网关”的C ++文件。这是从MATLAB调用文件时执行的函数。 testinputs.cpp 首先,我

  • 问题内容: 我正在使用pythons子进程模块中的subprocess.check_output执行ping命令。这是我的做法: 它引发一个CalledProcessError并说输出是该函数的参数之一。谁能帮助我如何阅读该输出。我想将输出读取为字符串并进行解析。举例来说,如果ping返回 100%丢包 我需要捕捉一下。如果还有其他更好的方法,请提出建议。谢谢。 问题答案: 在参数列表中,每个条目

  • 使用 deque 数据结构可以容易地解决经典回文问题。回文是一个字符串,读取首尾相同的字符,例如,radar toot madam。 我们想构造一个算法输入一个字符串,并检查它是否是一个回文。 该问题的解决方案将使用 deque 来存储字符串的字符。我们从左到右处理字符串,并将每个字符添加到 deque 的尾部。在这一点上,deque 像一个普通的队列。然而,我们现在可以利用 deque 的双重功

  • 如果给定的字符串是回文,则返回 true ;否则返回 false 。 使用 toLowerCase() 转换字符串,并使用 String.replace() 从中删除非字母数字字符。 然后,在将其转换为 String.tolowerCase() 之后,将 String.split('') 为单独的字符,Array.reverse() ,String.join('')并与原始非反转字符串进行比较。

  • 问题内容: 我有以下内容: 我的代码有什么问题?我想检查一下这个词是否是回文。 问题答案: 也许我会建议替代解决方案: UPD。但是请记住,这几乎是“作弊”方法,是对语言功能的智能用法的演示,但不是最实用的算法(时间O(n),空间O(n))。对于现实生活中的应用程序或编码面试,您绝对应该使用循环解决方案。JasonSebring在此线程中发布的一个既简单又有效(时间O(n),空间O(1))。

  • 我的目标是测试回文(单词向前和向后是相同的)以及仅包含回文的日志和数组,到目前为止,这是我能想到的最多的。 根据我的理解,这应该返回一个包含布尔值为真的项的数组,任何指针都将帮助新手。非常感谢!