java判断回文字符串的方法

首先介绍下什么是回文字符串,回文字符串就是关于中心对称的字符串,比如字符串ABCCBA、QWEWQ等等,都是回文字符串
思路一:将一个字符串分为左右两部分,然后将左部分从位置0开始遍历,而右部分则从尾部开始遍历,然后进行比较,如果出现不等的情况则不是回文字符串,如果遍历完都是相等的则是回文字符串,下面是代码展示

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main{
	public static void main(String[] args) throws IOException{
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		StringBuilder strB=new StringBuilder(br.readLine());
		System.out.println("输出的字符串是否为回文字符串:"+judgment(strB));
	}
	public static boolean judgment(StringBuilder strB){
		//n为每部分的长度
		int n=strB.length()/2;
		String strLeft=strB.substring(0,n);
		String strRight;
		if(strB.length()%2==0){
			strRight=strB.substring(n);
		}else{
			strRight=strB.substring(n+1);
		}
		//左部分从0开始遍历,右部分从尾部开始遍历
		for(int i=0;i<n;i++){
			if(strLeft.charAt(i)!=strRight.charAt(n-i-1)){
				return false;
			}
		}
		return true;
	}
}

思路二:利用StringBuilder类的reverse()方法,将字符串右边部分进行反转,如果左右两部分相等则为回问字符串,代码如下:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main2{
	public static void main(String[] args) throws IOException{
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		StringBuilder strB=new StringBuilder(br.readLine());
		System.out.println("输出的字符串是否为回文字符串:"+judgment(strB));
	}
	public static boolean judgment(StringBuilder strB){
		int n=strB.length()/2;
		StringBuilder strLeft=new StringBuilder(strB.substring(0,n));
		StringBuilder strRight=new StringBuilder();
		if(strB.length()%2==0){
			strRight=new StringBuilder(strB.substring(n));
		}else{
			strRight=new StringBuilder(strB.substring(n+1));
		}
		strRight.reverse();
		if(String.valueOf(strLeft).equals(String.valueOf(strRight))) return true;
		else return false;
	}
}

你可能感兴趣的:(用Java解决问题)