java回文代码 java实现回文

JAVA怎么编写一个回文数代码

public static boolean isPalindrome(int x) {

创新互联公司专注于企业成都全网营销、网站重做改版、吉林网站定制设计、自适应品牌网站建设、H5高端网站建设商城网站建设、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为吉林等各大城市提供网站开发制作服务。

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;

}

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);

}

}

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("不是回文");}

JAVA怎么用循环语句编写一个判别是否为回文数的代码

Scanner sc = new Scanner(System.in);  

System.out.println("请输入一个整数:");  

int num = sc.nextInt();  

String str1 = num + "";  

// String str1 = Integer.toString(num);  

// String str1 = String.valueOf(num);  

StringBuilder str2 = new StringBuilder(str1);  

str2.reverse();  

int count = 0;  

for (int i = 0; i  str1.length(); i++) {  

if (str1.charAt(i) != str2.charAt(i)) {  

System.out.println(str1 + "不是回文数");  

break;  

} else {  

count++;  

}  

}  

if (count == str1.length()) {  

System.out.println(str1 + "是回文数");  

}

望采纳

java编写回文数

按照你的要求编写的,输出从0到max中用二进制表示和十进制表示都是回文数的Java程序如下:

import java.util.Scanner;

public class CCF {

public static void main(String[] args) {

Scanner sc=new Scanner(System.in);

System.out.print("请输入一个整数:"); 

int max=sc.nextInt();

for(int i=0;i=max;i++){

String num = String.valueOf(i); 

String num2=Integer.toBinaryString(i);

String reversenum=new StringBuffer(num).reverse().toString();

String reversenum2=new StringBuffer(num2).reverse().toString();

if(reversenum.equals(num)  reversenum2.equals(num2)){

System.out.println(i+"用二进制表示"+num2+"和十进制表示"+i+"都是回文数"); 

}

}

}

}

运行结果:

请输入一个整数:1000

0用二进制表示0和十进制表示0都是回文数

1用二进制表示1和十进制表示1都是回文数

3用二进制表示11和十进制表示3都是回文数

5用二进制表示101和十进制表示5都是回文数

7用二进制表示111和十进制表示7都是回文数

9用二进制表示1001和十进制表示9都是回文数

33用二进制表示100001和十进制表示33都是回文数

99用二进制表示1100011和十进制表示99都是回文数

313用二进制表示100111001和十进制表示313都是回文数

585用二进制表示1001001001和十进制表示585都是回文数

717用二进制表示1011001101和十进制表示717都是回文数

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实现回文
URL网址:http://scyanting.com/article/doojcog.html