黑马程序员技术交流社区

标题: 判断一个字符串是否是对称字符串 [打印本页]

作者: 安安安    时间: 2015-6-19 22:53
标题: 判断一个字符串是否是对称字符串
  1. /**
  2. * 判断一个字符串是否是对称字符串,例如"abc"不是对称字符串,"aba"、"abba"、"aaa"、"mnanm"是对称字符串
  3. */

  4. public class Test4
  5. {
  6.         public static void main(String[] args)
  7.         {
  8.                 System.out.println(isDuichenStr("mnanm"));
  9.         }
  10.        
  11.         public static boolean isDuichenStr(String s)
  12.         {
  13.                 char[] chs=s.toCharArray();//转字符数组
  14.                 int min=0;
  15.                 int max=chs.length-1;
  16.                
  17.                 while(max>=min)
  18.                 {
  19.                         if(!new Character(chs[min++]).equals(chs[max--]))//比较字符是否相同
  20.                                 return false;
  21.                 }
  22.                 return true;
  23.         }
  24. }
复制代码

感觉好麻烦
作者: qq496099229    时间: 2015-6-19 23:20
有问题吗?没问题呀!
作者: hoop.zeng    时间: 2015-6-20 11:34
比较字符是否相同,写:
if(!(chs[min++]==chs[max--]))  就可以了吧。
比较的是基本数据类型,没必要封装成Chracter对象和用equals方法
作者: dcw2015    时间: 2015-6-20 11:59
对称只要前后最后一个字符相同就可以了,首先用trim()方法去掉两边空格,(看不到,不代表没有)然后用toCharArray()将字符串转换成字符数组,最后比较ch[0]和最ch[ch.length-1]是否相同
作者: 草原上的小黑马    时间: 2015-6-20 13:04
先将字符串转成字符数组,排好序,最左边的数++和最右边的数-- 依次比较,到左边的数大于或等于右边的数结束比较。
作者: 崔判官    时间: 2015-11-6 21:18
package lianxi;

import java.util.Scanner;

public class Test {
        /**
         *  java程序运行入口
         *  jvm自动加载main方法
         */
        public static void main(String[] args) {
                //创建使用键盘对象
                Scanner sc = new Scanner(System.in);
                //系统提示语
                System.out.println("请输入字符串");
                //输入字符串并获取
                String s = sc.nextLine();
                //创建StringBuilder类型对象
                StringBuilder sb = new StringBuilder();
                //获取之前输入的字符串b
                sb.append(s);
                //进行反转并转回String类型
                String s3 = sb.reverse().toString();
                //反转前的内容跟反转后的内容做比较并输出结果
                System.out.println(s.equals(s3));
               
        }
}
这个比较简单 直接反转字符串然后进行比较  希望对你有帮助
作者: peide0427    时间: 2015-11-6 22:43
很好。。。。。
作者: peide0427    时间: 2015-11-6 22:46
hao....应该没有问题啊吧




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2