求助一个JAVA简单问题~

import java.awt.Graphics;
import javax.swing.*;//先导入一个类

public class Jichu2 {

public static void main(String[] args) {

double ge,shi,qian,wan;
double s;

String theNumber;

theNumber=JOptionPane.showInputDialog("请输入一个五位数字");

s=Double.parseDouble(theNumber);

ge=s%10;
shi=s/10%10;
qian=s/1000%10;
wan=s/10000%10;

if(ge==wan&&qian==shi)
{
qian=s/1000%10;
shi=s/10%10;
JOptionPane.showMessageDialog(null,"这是个回文数",
"结果为",JOptionPane.INFORMATION_MESSAGE);}
else{
JOptionPane.showMessageDialog(null,"这不是个回文数",
"结果为",JOptionPane.INFORMATION_MESSAGE);}
}
}

这个算法 无论如何的结果都是非回文数,还有啦 新手,只会这种笨方法。。

判断回文数,不建议用取模,可以用StringBuffer.reverse()反转处理

import javax.swing.JOptionPane;

public class Jichu2 {

    public static void main(String[] args) {

        String inputValue = JOptionPane.showInputDialog("请输入一个整数");
        StringBuffer source = new StringBuffer(inputValue);
        source.reverse();
        String reverseString = new String(source);

        String msg = reverseString.equals(inputValue) ? "这个是回文数" : "这不是个回文数";

        JOptionPane.showMessageDialog(null, msg, "结果为", JOptionPane.INFORMATION_MESSAGE);
    }
}

追问

我是初学啊.. 我这样方法虽然笨点儿 但是我能理解。。你能帮我改改我这个吗 ~

追答    public static void main(String[] args) {

        int ge, shi, qian, wan;
        int s;

        String theNumber;

        // theNumber = JOptionPane.showInputDialog("请输入一个五位数字");
        theNumber = "12321";

        s = Integer.parseInt(theNumber);

        ge = s % 10;
        System.out.println(ge);
        shi = s / 10 % 10;
        qian = s / 1000 % 10;
        wan = s / 10000 % 10;

        if (ge == wan && qian == shi) {
            qian = s / 1000 % 10;
            shi = s / 10 % 10;
            JOptionPane.showMessageDialog(null, "这是个回文数", "结果为", JOptionPane.INFORMATION_MESSAGE);
        } else {
            JOptionPane.showMessageDialog(null, "这不是个回文数", "结果为", JOptionPane.INFORMATION_MESSAGE);
        }
    }

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-05-04

主要有2个问题,需要修改

1.你变量既然是 个位 十位 千位 万位  说明你的五位数字是int整数类型

所以修改变量的定义从double->int

int ge, shi, qian, wan;
int s;

2.从输入中得到解析的五位数字,应该解析出来的也是整数.所以

//s=Double.parseDouble(theNumber);
修改成
s = Integer.parseInt(theNumber);


double进行+-*/ 容易出现误差

追问

谢谢!

本回答被提问者采纳
第2个回答  2015-10-15
import java.awt.Graphics;
import javax.swing.*;//先导入一个类
public class Jichu2
{

public static void main(String[] args) {

double ge,shi,qian,wan;
double s;

String theNumber;

theNumber=JOptionPane.showInputDialog("请输入一个五位数字");

s=Double.parseDouble(theNumber);
ge=(int)s%10;
shi=(int)s/10%10;
qian=(int)s/1000%10;
wan=(int)s/10000%10;
if(ge==wan&&qian==shi)
{
JOptionPane.showMessageDialog(null,"这是个回文数",
"结果为",JOptionPane.INFORMATION_MESSAGE);}
else{
JOptionPane.showMessageDialog(null,"这不是个回文数",
"结果为",JOptionPane.INFORMATION_MESSAGE);}
}

}追问

非常感谢!

相似回答