如何判断一个字符串是否是回文??

LJ_1558 2012-04-27 09:13:48
要判断一个输入的字符串是否是回文,它的条件是什么??? 请高手指导
...全文
841 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

StringBuffer("abc").reverse().toString();

或者
reverseString(s);

static void reverseString(String str) {
if (str.length() == 1) {
System.out.println(str);
} else {
String s1 = str.substring(0, str.length() - 1);
String s2 = str.substring(str.length() - 1);
System.out.print(s2);
reverseString(s1);
}
}

  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

楼上的方法好啊,可以将循环次数再减为一般
[/Quote]

如果为 false 的话可以立即跳出循环,没必要再做下去了。
tomcatlee 2012-05-04
  • 打赏
  • 举报
回复
str.length()/2

static boolean validate(String str) {
if (str == null || str.equals(""))
return false;
boolean flag = true;
for (int i = 0; i < str.length()/2 && flag; i++) {
flag &= (str.charAt(i) == str.charAt(str.length() - i - 1));
}
return flag;
}
Mourinho 2012-05-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
引用 1 楼 的回复:
String str = "aabaa";

boolean b = new StringBuilder(str).reverse().toString().equals(str);

System.out.println(b?"是回文":"不是回文");

+1
一行就能搞定,我加了空值和空字符串的处理

Java code

class Tes……
[/Quote]
上述方法效率不是很高,主要时间浪费在反转字符串上



static boolean check2(String str){
if(str == null || str.equals(""))
return false;
boolean flag = true;
for(int i = 0;i < str.length() && flag;i++){
flag &= (str.charAt(i) == str.charAt(str.length() - i - 1));
}
return flag;
}
Mourinho 2012-05-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
String str = "aabaa";

boolean b = new StringBuilder(str).reverse().toString().equals(str);

System.out.println(b?"是回文":"不是回文");
[/Quote]
+1
一行就能搞定,我加了空值和空字符串的处理

class Test {
public static void main(String[] args){
System.out.println(check(null));
System.out.println(check(""));
System.out.println(check("abcddcba"));
System.out.println(check("abcdcba"));
System.out.println(check("abcddba"));
}

static boolean check(String str){
return (str == null || str.equals("")) ? false :
new StringBuffer(str).reverse().toString().equals(str);
}
}


ba_gai 2012-05-02
  • 打赏
  • 举报
回复
楼上的方法好啊,可以将循环次数再减为一般
龙四 2012-04-27
  • 打赏
  • 举报
回复
String str = "aabaa";

boolean b = new StringBuilder(str).reverse().toString().equals(str);

System.out.println(b?"是回文":"不是回文");

51,397

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧