
正文
回文的java代码 回文数字java代码
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
java回文数 代码修改
package JOptionPane;
import javax.swing.JOptionPane;
/**
* @author songml
*
*/
public class huiwen1 {
/**
* @param args
*/
public static void main(String[] args) {
//bFlg为true的时候,显示对话框
//bFlg为false的时候,不显示对话框,程序结束
boolean bFlg = true;
while (bFlg) {
String inputValue = JOptionPane.showInputDialog("请输入一个五位整数");
//什么都没有输入的时候的处理
if ("".equals(inputValue) ){inputValue ="0";}
//点击"取消"时候的处理
if (null == inputValue ) {bFlg = false;continue;}
//五位数判断
if (inputValue.length() !=5) {
JOptionPane.showMessageDialog(null, "请输入一个五位数");
//跳出本次(上面的那个)while,目的是不运行下面的回文数判断
continue;
}
long inputValueLong = Long.parseLong(inputValue);
long temp = inputValueLong;
long reverseLong = 0L;
//回文数判断
while (inputValueLong != 0) {
reverseLong = reverseLong * 10 + inputValueLong % 10;
inputValueLong = inputValueLong / 10;
}
if (reverseLong == temp) {
JOptionPane.showMessageDialog(null, "你输入的是回文数");
bFlg =false;
} else {
JOptionPane.showMessageDialog(null, "你输入的不是回文数");
}
}
System.exit(0);
}
}
相关问答
Q1: 求用java判断一个4位回文数代码
public static boolean check(int k){
String str = ""+k;
int strLen = str.length();
int point = strLen;
int oldLen = 0,newLen = 0;
char first = 'a',end = 'a';
oldLen = (strLen+1)/2;
if (str == "")
{
System.out.println("数值为空");
return false;
}
if(str.length() !=4){
System.out.println("不是四位数");
return false;
}
for (int i=0;ioldLen;i++)
{
first = str.charAt(i);
end = str.charAt(point-1);
point--;
if (first == end)
{
newLen++;
}
}
if (oldLen == newLen)
{
return true;
}else {
return false;
}
}
public static void main(String[] args) {
for(int k = 1000;k9999;k++){
boolean is = check(k);
if (is)
{
System.out.println(k+"是回文数");
}else {
// System.out.println(k+"不是回文数");
}
}
}
1001是回文数
1111是回文数
1221是回文数
1331是回文数
1441是回文数
1551是回文数
1661是回文数
1771是回文数
1881是回文数
1991是回文数
2002是回文数
2112是回文数
2222是回文数
2332是回文数
2442是回文数
2552是回文数
2662是回文数
2772是回文数
2882是回文数
2992是回文数
3003是回文数
3113是回文数
3223是回文数
3333是回文数
3443是回文数
3553是回文数
3663是回文数
3773是回文数
3883是回文数
3993是回文数
4004是回文数
4114是回文数
4224是回文数
4334是回文数
4444是回文数
4554是回文数
4664是回文数
4774是回文数
4884是回文数
4994是回文数
5005是回文数
5115是回文数
5225是回文数
5335是回文数
5445是回文数
5555是回文数
5665是回文数
5775是回文数
5885是回文数
5995是回文数
6006是回文数
6116是回文数
6226是回文数
6336是回文数
6446是回文数
6556是回文数
6666是回文数
6776是回文数
6886是回文数
6996是回文数
7007是回文数
7117是回文数
7227是回文数
7337是回文数
7447是回文数
7557是回文数
7667是回文数
7777是回文数
7887是回文数
7997是回文数
8008是回文数
8118是回文数
8228是回文数
8338是回文数
8448是回文数
8558是回文数
8668是回文数
8778是回文数
8888是回文数
8998是回文数
9009是回文数
9119是回文数
9229是回文数
9339是回文数
9449是回文数
9559是回文数
9669是回文数
9779是回文数
9889是回文数
哪不懂在问回文的java代码我吧
Q2: java 的一段监测回文代码
这段代码是判断输入的字符串是不是回文。
所谓回文,是指诸如:abcba这样的字符串,也就是说第一个字母也最后一个字母相同,第二个字母与倒数第二个字母相同,以些类推。
这段代码的关键是下面这几句:
while (j = (i / 2) -1 word.charAt(j) == word.charAt(i - j - 1))
j++;
这个就是从字符串的第一个字母开始逐一判断是否满足回文的要求,如果所有的都满足,那么,这个循环结束时,j = (i/2),这样就可以用下面的条件语句来判断是否为回文了。
下面是这段代码的注释,希望能帮到你~!
import java.util.Scanner;
public class PalindromeV1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);//接受从控制台的输入
System.out.println("输入一个字符串: ");
String word = sc.next();//将用户输入的字符串保存到word中
int i = word.length();//获取输入的字符串的长度,保存到i中
int j = 0;//初始化变量j
//从字符串的第一个字母开始逐一判断是否满足回文的要求,如果所有的都满足,那么,这个循环结束时,j = (i/2)
while (j = (i / 2) - 1 word.charAt(j) == word.charAt(i - j - 1))
j++;
//判断是否为回文
if (j == i / 2)
System.out.println("输入字符串是回文.");
else
System.out.println("输入字符串不是回文.");
}
}
Q3: JAVA怎么编写一个回文数代码
public static boolean isPalindrome(int x) {
if (x0) { return false; }
int len=1;
for (len=1; (x/len) = 10; len*=10 );
while (x != 0 ) {
int left = x / len;
int right = x % 10;
if(left!=right){
return false;
}
x = (x%len) / 10;
len /= 100;
}
return true;
}
Q4: JAVA正话反说判断“回文”,字符串的比较问题,贴代码:
这个问题,你可以逆向思考
现在出现的现象是无论输入什么,最终都会是回文,那也就是说,当执行
if(str1.equals(str2)){
System.out.println("是回文");}
else{
System.out.println("不是回文");}
一定都是执行的第一个打印语句
也就是说str1.equals(str2)一定返回true
也就是说这equals两个比较对象一定是相等,换句话说这个两个对象其实指的是一个对象,只是不同的引用名而已
也就是说str1和str2都是指的一个StringBuffer对象
也就是说reverse()方法是直接返回了本对象
查看源码证实:
/**
* @since JDK1.0.2
*/
@Override
public synchronized StringBuffer reverse() {
toStringCache = null;
super.reverse();
return this;
}
可以看到最终返回this,也就是返回的是本对象,也就证实了刚的想法
所以综上所诉,现在再来看一下整个代码的执行过程
创建了一个StringBuffer对象str1,里面包装的字符串是"上海自来水
"
打印对象str1,所以此时打印的是:上海自来水
给对象str1调用reverse()方法,此时并没有新创建一个StringBuffer,而是直接修改了str1里面的包装字符串,改为"水来自海上",并返回了str1对象给str2
所以str1和str2其实都指的是一个StringBuffer(里面包含的都是"水来自海上")
此时打印str2,当然显示的是"水来自海上",其实若这是你再打印哈str1就明白了,因为这个是str1也打印出来的是"水来自海上"
个人建议写法
因为你只是需要做一个回文的功能,因此可以只是把StringBuffer的reverse方法作为一个工具即可,所以建议如下写法
String str1 = "上海自来水";
System.out.println("原来的话为:"+str1);
String str2=new StringBuffer(str1).reverse().toString();
System.out.println("正话反说为:"+str2);
if(str1.equals(str2)){
System.out.println("是回文");}
else{
System.out.println("不是回文");}
Q5: java 回数的代码是什么?
1、可以把这个5个数分解存在一个数组里面
2、通过循环判断是否相等,循序次数就是长度整除2
在设置一个状态标记,为TRUE就是回数,为false就不是,在循环中,一旦不相等就把状态标记改为false,终止循环,当循环结束时,状态标记还是为true就是回数。
import java.util.Scanner;
/*
* 第三章 java运算符
* 课后作业 判断回文数
* 5.2.1 由用户输入一个整数,判断是不是回文数(完全对称的数),如果是 打印 true, 否则打印false
* 提示:本题仅要求判断一个五位数是不是回文数
* 通过除法运算和求模运算符,可以分别求出一个五位数的每位上的值,然后进行比较。
* Palindrome 回文数
*/
public class zuoye0352 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("输入要判断是否为回文数的数值:");
int i=sc.nextInt();
String str=""+i;
if(str.length()%2==0){
System.out.println(i+"不是回文数!"+str.length()%2);
}
//判断反转后 值是否相等 从而
else if(i==fanzhuan(i)){
System.out.println(i+"是回文数~");
}
else
System.out.println(i+"不是回文数!");
}
private static int fanzhuan(int input) {
int output = 0;//
while(input0){
//output= output*10;
output=output*10+input%10;
input=input/10;
}
return output;
}
}
回文的java代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于回文数字java代码、回文的java代码的信息别忘了在本站进行查找喔。








