java学习之路——判断回文(String的应用)

一、切割字符成两段

切割字符成两端,将第二段倒序储存 然后经行比较

代码如下

public static void isPalindrom(String str) {
		StringBuilder temp1 = new StringBuilder();
		StringBuilder temp2 = new StringBuilder();
		//char ch ;
	if (str.length()%2 == 0) {//字符串长度为偶数
			
			for (int i = str.length(); i > str.length()/2; i--) {
				temp1.append(str.charAt(i-1));
			}
			System.out.println(temp1);
			for(int i = 0 ; i < str.length()/2; i++)
				temp2.append(str.charAt(i));
			System.out.println(temp2);
	
		}else{//字符串长度是奇数 , 中间字符不影响判断
			
			for (int i = str.length(); i > str.length()/2 + 1; i--) {
				temp1.append(str.charAt(i-1));
			}
			System.out.println(temp1);
			for(int i = 0 ; i < str.length()/2; i++)
				temp2.append(str.charAt(i));
			System.out.println(temp2);
		}
		if(temp1.toString().equals(temp2.toString())) {
			System.out.println("是回文!");
		}else {
			System.out.println("不是回文!");
		}
	}
	

二、利用charAt 进行比较

public static void judgeStr(String str) {
		int begin = 0;     //字符串的第一位
		int end = str.length() - 1; //长度 - 1
		for(; begin < end ;begin++ , end -- ) {
			if(str.charAt(begin)!=str.charAt(end)) {
				System.out.println("不是回文!");
				return;
			}

		}
		System.out.println("是回文!");
	}

三、利用StringBuffer的reverse方法进行比较

StringBuffer类里提供了方法reverse()的作用就是将字符串翻转

public static void judgeStr2(String str) {
		String orgStr = str;
		StringBuffer sb = new StringBuffer(str);
		String reStr = sb.reverse().toString();
		if(orgStr.equals(reStr)) {
			System.out.println("是回文!");
			
		}else {
			System.out.println("不是回文!");
		}
	}

测试代码:

public static void judgeStr2(String str) {
		String orgStr = str;
		StringBuffer sb = new StringBuffer(str);
		String reStr = sb.reverse().toString();
		if(orgStr.equals(reStr)) {
			System.out.println("是回文!");
			
		}else {
			System.out.println("不是回文!");
		}
	}

运行截图:

在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值