回文判断(java实现)

该博客探讨如何使用Java编程语言来判断一个字符串是否为回文串。通过两种方法进行解释,一是从两头向中间扫描,比较字符是否相同;二是从中间向两侧遍历,逐一比较字符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述:

               给定一个字符串,如何判断这个字符串是否是回文串?

分析与解法:

               回文串即为正读和反读都一样的字符串,如madam,aba等待。

               解法一:两头往中间扫;

                给定一个字符串,首先定义头字符和尾字符,然后从两端王字符串的中间扫描,如果头和尾所对应的字符始终一样,则为回文串;

package Test.com;
import java.util.Scanner;
public class IsPalindrome 
{
	public boolean IsPalindrome(String A)
	{
		char [] arrayA=A.toCharArray();
		int front=0;
		int back=arrayA.length-1;
		if(A.equals("")||A.equals(null))
			return false;
		while(front<back)
		{
			if(arrayA[front++]!=arrayA[back--])
				return false;
		}
		return true;
	}
	
	public static void main(String[] args) 
	{
		IsPalindrome test= new IsPalindrome();
		Scanner input=new Scanner(System.in);
		System.out.println("请输入一个字符串:");
		String A = input.nextLine();
		if(test.IsPalindrome(A))
			System.out.println("字符串为回文串");
			else
				System.out.println("字符串不为回文串");
	}
}
解法二:从中间往两侧扫描  

从中间往两侧扫其实就是如同abdba,首先获取字符串的长度,然后计算字符串的中间位置,用front表示中间位置的左侧字符用back表示中间位置的右侧字符,用左侧字符与右侧字符一一对应比较是否相同

package Test.com;
import java.util.Scanner;
public class IsPalindrome 
{
	public boolean IsPalindrome(String A)
	{
		char[] arrayA = A.toCharArray();
		int lenA = arrayA.length;
		int mid = lenA/2;
		int front;
		int back;
		if(lenA%2 ==0)
		{
			front = mid-1;
			back=mid;
		}
		else
		{
			front=mid-1;
			back=mid+1;
		}
		if(A.equals("")||A.equals(null))
		{
			return false;
		}
		while(front>=0&& back<lenA)
		{
			if(arrayA[front--]!=arrayA[back++])
				return false;
		}
		return true;
	}
	
	public static void main(String[] args) 
	{
		IsPalindrome test= new IsPalindrome();
		Scanner input=new Scanner(System.in);
		System.out.println("请输入一个字符串:");
		String A = input.nextLine();
		if(test.IsPalindrome(A))
			System.out.println("字符串为回文串");
			else
				System.out.println("字符串不为回文串");
	}
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值