JAVA编写程序,判断是否为回文

回文是指正向和反向读都一样的一段数字或者文字,诸如32123。编写程序,输入一个5位整数,并判断它是否是回文。如果输入数没有5位,则显示一个错误消息对话框,向用户指出问题... 回文是指正向和反向读都一样的一段数字或者文字,诸如32123。编写程序,输入一个5位整数,并判断它是否是回文。如果输入数没有5位,则显示一个错误消息对话框,向用户指出问题,并允许用户再次输入另一个数。程序可以连续运行,只到用户输入程序结束标志“00000”为止。
要求与提示: 1.通过JOptionPane 获取用户输入,用While循环确保用户正确输入; 2.用除法和求模运算来获取各个数字; 3.通过查询JOptionPane的JOptionPane.showMessageDialog( )方法参数的变更来显示错误消息对话框。
展开
 我来答
wiqcbjs
2011-05-26 · TA获得超过998个赞
知道答主
回答量:680
采纳率:100%
帮助的人:311万
展开全部
你的算法有问题,我再你得基础上修改下:

import java.applet.Applet;
import java.awt.Event;
import java.awt.Label;
import java.awt.TextField;

public class HUiWen extends Applet {
Label prompt;

TextField input;

int data;

public void init() {
prompt = new Label("输入数字");
input = new TextField(4);
add(prompt);
add(input);
}

public boolean action(Event e, Object o) {
int data = Integer.parseInt(input.getText());
showStatus("");
input.setText("");

int count = 0;
String[] arr = new String[1000000];
while (data != 0) {
arr[count] = String.valueOf(data % 10);
data = data / 10;
count++;
}

int j = count - 1;
boolean flag = true;
for (int i = 0; i < count / 2; i++, j--) {
if (!arr[i].equals(arr[j])){
showStatus("不是回文数");
flag = false;
}
}

if(flag){
showStatus("是回文数");
}
repaint();
return true;
}
}

我自己写的处理回文,比你那个省内存
import java.applet.Applet;
import java.awt.Event;
import java.awt.Label;
import java.awt.TextField;

public class HUiWen extends Applet {
Label prompt;

TextField input;

public void init() {
prompt = new Label("输入数字");
input = new TextField(4);
add(prompt);
add(input);
}

public boolean action(Event e, Object o) {
String text = input.getText().trim();
showStatus("");
input.setText("");

StringBuilder sb = new StringBuilder(text);

if (sb.reverse().toString().equals(text)) {
showStatus("不是回文数");
} else {
showStatus("是回文数");
}
repaint();
return true;
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式