idea使用Java通过判断字符序列是否是回文
前言
回文是指一个字符序列无论从左向右读还是从右向左读都是相同的句子
例:奶牛产牛奶、上海自来水来自海上、门盈喜气喜盈门
方案
判断第一个字符序列和最后一个字符序列是否相等
代码实现
1)使用break,如果是回文不执行if内打印,结束for循环输出“是回文!”;不是的话,打印“不”,结果for循环,打印“是回文!”,一行输出,结果为“不是回文!”
public class Test {
public static void main(String[] args) {
String info = "上海自来水来自海上e";
for(int i=0;i<info.length()/2;i++){
if(info.charAt(i)!=info.charAt(info.length()-1-i)){
System.out.print("不");
break;
}
}
System.out.println("是回文!");
}
}
2)使用return结束这个方法,只有是void时才用
public class Test {
public static void main(String[] args) {
String info = "上海自来水来自海上";
for(int i=0;i<info.length()/2;i++){
if(info.charAt(i)!=info.charAt(info.length()-1-i)){
System.out.println("不是回文!");
return;
}
}
System.out.println(info+":是回文!");
}
}
3)使用StringBuilder类中的reverse方法
public class Test {
public static void main(String[] args) {
String info = "上海自来水来自海上";
StringBuilder builder = new StringBuilder(info);
builder.reverse();
if(info.equals(builder.toString())){ //builder是StringBuilder类型,需要使用toString将其转换为String类型
System.out.println(info+":是回文!");
}else{
System.out.println(info+":不是回文!");
}
}
}
4)使用开关,进行多次判断
public class Test {
public static void main(String[] args) {
String info = "上海自来水来自海上";
boolean flag = false;
for(int i=0;i<info.length()/2;i++){
char c1 = info.charAt(i);
char c2 = info.charAt(info.length()-1-i);
if(c1==c2){
flag = true;
}
}
if(flag){
System.out.println(info+":是回文!");
}else {
System.out.println(info+":不是回文!");
}
}
}