开学第三周暨回文的检测

首先定义回文,字符串长度为1或0为回文,其次当出现字符串为奇数时,运行(length-1)/2次后,只剩下最中间的一个字符,所以不必检测;当字符串长度为偶数,运行(length/2)次后,所有字符运行完毕。

所以可知,字符串长度对程序的运行次数没有影响,都是运行(length/2)次(java中整数的运算都是取整数部分)。

之后,定义一个boolean类型的变量a,用来判定最后输出判定结果。读取字符串,循环(length/2)次,每次将字符串的第i个字符与第(length-i)个字符进行比较,不同的话直接将a赋值false,当运行(length/2)次之后

如果a值仍然为true,那么即说明该字符串为回文,反之,则不是回文。经过一个if语句的判断,进行结果的输出。

源代码如下:

package two;

import java.util.Scanner;

public class second {
static Scanner sc = new Scanner(System.in);
public static void main(String[] args){
boolean a=false;
System.out.println("Please input a string:");
String str =new String();
str=sc.next();
if(str.length()==0||str.length()==1) {
a=true;
}
else {
int i=str.length()/2;
int j=str.length();
int u=0;
while(i!=0) {
char a1=str.charAt(u);
char a2=str.charAt((j-1)-u);
if(a1==a2) {
i--;
}
else {
a=false;
break;
}
if(i==0) {
a=true;
}
u++;
}
}
if(a) {
System.out.println("YES!,it's!");
}
else {
System.out.println("No,it's not!");
}
}
}

运行结果如下:

 

posted @ 2019-09-25 16:14  或者活着  阅读(148)  评论(0编辑  收藏  举报