java学习之路——判断回文(String的应用)
程序员文章站
2024-01-14 12:28:16
这里写目录标题一、切割字符成两段二、利用charAt 进行比较三、利用StringBuffer的reverse方法进行比较一、切割字符成两段切割字符成两端,将第二段倒序储存 然后经行比较代码如下public static void isPalindrom(String str) {StringBuilder temp1 = new StringBuilder();StringBuilder temp2 = new StringBuilder();//char ch ;if (...
一、切割字符成两段
切割字符成两端,将第二段倒序储存 然后经行比较
代码如下
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("不是回文!");
}
}
运行截图:
本文地址:https://blog.csdn.net/weixin_44420328/article/details/107269869
上一篇: 处理上百万条的数据库如何提高处理查询速度
下一篇: 经验分享:PHP面向对象分析设计的原则