java判断回文串代码 java判断是否是回文串

【java】编写程序,要求判断从键盘输入的字符串是否为回文

对于回文这个问题,我们一般的解决方法是用递归

成都创新互联公司是工信部颁发资质IDC服务器商,为用户提供优质的服务器托管服务

package com.axjy.yzn;

public class Recursive {

public static void main(String[] args) {

System.out.println("Is abcba a Palindrome?"+isPalindrome("abcdcba"));

}

public static boolean isPalindrome(String s){

if(s.length()=1){

return true;

}else if(s.charAt(0) != s.charAt(s.length()-1)){

return false;

}

return isPalindrome(s.substring(1,s.length()-1));

}

}

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判断输入一段字符串是不是回文

import java.util.Scanner;

public class A {

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

System.out.println("请输入一个字符串:");

String str = scanner.next();

boolean isloop = isLoop(str);

if (isloop) {

System.out.println(str + "是回文字符");

} else {

System.out.println(str + "不是回文字符");

}

}

public static boolean isLoop(String str) {

for (int i = 0, j = str.length() - 1; i  str.length() / 2; i++, j--) {

if (str.charAt(i) != str.charAt(j)) {

return false;

}

}

return true;

}

}

java编程判断是否回文

看你的要求真麻烦

给你一个简单的不行联系我

import java.util.Scanner;

public class test{

public static void main(String []dafd){

int num=(new Scanner(System.in)).nextInt();

String s=num.toString();

boolean b=true;

for(int i=0;is.length/2;i++){

if(s.charAt(i)!=s.charAt(s.length-i-1)){

b=false;

break;

}

}

System.out.pirntln(num+(b?"是":"不是")+"回文数");

}

}


当前文章:java判断回文串代码 java判断是否是回文串
分享链接:http://ybzwz.com/article/hhsdhc.html