java语言 回文判断_java判断回文字符串的几种方法

java判断回文字符串几种简单的实现:

1.将字符串倒置后逐一比较,实现如下:

public class HuiWenTest {

/**

* @SERLIN

*/

public static void main(String[] args) {

String str = "";

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

Scanner input = new Scanner(System.in);

str = input.next();

StringBuffer sb = new StringBuffer(str);

sb.reverse();// 将Str中的字符串倒置

int count = 0;

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

if (str.charAt(i) == sb.charAt(i)) {

count++;

}

}

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

System.out.println("此字符串是一个回文字符串");

} else {

System.out.println("此字符串不是一个回文字符串");

}

}

}

2.将字符串倒置后创建新字符串直接比较,实现如下:

public class HuiWenTest2 {

/**

* @SERLIN

*/

public static void main(String[] args) {

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

Scanner input = new Scanner(System.in);

String str = input.next();

StringBuilder sb=new StringBuilder(str);

sb.reverse();//将str倒置的方法

String newStr=new String(sb);

if(str.equals(newStr)){

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

}else{

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

}

}

}

3.使用截取字符串的方式比较,实现如下:

public class HuiWenTest3 {

/**

* @SERLIN

*/

public static void main(String[] args) {

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

Scanner input = new Scanner(System.in);

String str = input.next();

int count = 0;

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

if ((str.substring(i, i + 1)).equals(str.substring(str.length() - 1- i, str.length() - i))) {

count++;

}

}

if (count == str.length() / 2) {

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

}else{

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

}

}

}

4.判断回文数字(判断纯数字),实现如下

public class HuiWenNum {

/**

* @SERLIN

*/

public static void main(String[] args) {

int n;

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

// 如果结果为回文数,跳出循环

while (true) {

Scanner InpuNum = new Scanner(System.in);

n = InpuNum.nextInt();

if (isHuiWen(n)) {

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

break;

} else {

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

}

}

}

// 判断的数字是否是回文数

public static boolean isHuiWen(int n) {

int m = reverse(n);

if (m == n) {

return true;

} else {

return false;

}

}

// 将输入的数字进行倒置,以便进行判断是否是回文数

public static int reverse(int n) {

int temp = 0;// 临时变量

int j = 0;// 倒置后的数字

temp = n;// 将输入的数字赋值给临时变量

while (temp != 0) {

j = j * 10 + temp % 10;

temp /= 10;

}

return j;

}

}

当然,还能先将数字转为字符串再判断,方法同上面的字符串判断一样.

除了上面的方法,当然还有其他很多,比如使用递归等.

也可以自己实现倒序字符串方法,如果大家有更好,更高效的方法希望能贴出来,大家一起学习!

smile.gif

smile.gif

smile.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值