java实现回文脚本_java实现简单回文算法

java实现简单回文算法

算法要求

编写一个程序,判断一个字符串是否为“回文”。回文串:字符串字符从前往后与从后往前一致(中心对称)。

算法思路

首先将字符串等分左右两块,然后依次对称比较每一对字符是否相同

代码实现

import java.util.Scanner;

public class Palindrome {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

while (!sc.hasNext("###")) {

String data = sc.next();

if (isPalin(data)) {

System.out.println("yes");

} else {

System.out.println("no");

}

}

sc.close();

}

public static boolean isPalin(String data) {

int len = data.length();

for (int i = 0; i < len/2; i++) {

if (data.charAt(i) != data.charAt(len-1-i)) {

return false;

}

}

return true;

}

}

测试样例

abc

no

qwq

yes

abcdcba

yes

小知识

1、equals和==

==运算符执行规则

如果是基本数据类型的变量,则比较他们的值

如果是引用类型的变量,则比较他们所指向的对象的地址

equals方法执行规则

原始的equals方法,比较的是引用类型的变量所指向的对象的地址

String、Date等类对equals方法进行了重写,此时比较的是所指向的对象的内容

ps:equals方法是基类Object中的方法,用来比较两个对象的引用是否相等,即是否指向同一个对象

2、sc.hasNext()实现多组输入

!sc.hasNext("###") // 匹配 ### 返回true,然后取非运算。即以 ### 作为停止输入的命令

hasNext()和next()效果其实是一样的,系统都会等待输入下一个字符,只是返回值不同,hasNext()返回true,next()返回输入的字符。如果hasNext()有参数则当下一个字符与参数值匹配时才会返回true。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值