A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 原子弹 中级黑马   /  2014-3-25 23:52  /  1538 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

判断一个字符串是否是对称的字符串  的代码        我是这样做的但是老是true    求大神指点
public static void main(String[] args) {
                // 声明一个字符串
                String string = "baaa";
                System.out.println(method(string));
        }
        //定义一个返回值是Boolean类型的方法,实现判断字符串是否对称的功能
        public static boolean method(String s){
                // 把字符串转换成字符数组
                char[] ch = s.toCharArray();
                // 利用循环进行判断
                for(int i = 0,j = ch.length-1;i<j;i++,j--){
                        //  进行判断
                        if(ch[i] == ch[j]){
                                return true;
                        }
                       
                }
                return false;
        }

评分

参与人数 1技术分 +1 收起 理由
朱神必 + 1

查看全部评分

3 个回复

倒序浏览
  1. package com.itheima;

  2. import java.util.Scanner;

  3. public class Test1 {

  4.         /**
  5.          * 1.判断一个字符串是否是对称字符串
  6.      *例如"abc"不是对称字符串,"aba"、"abba"、"aaa"、"mnanm"是对称字符串
  7.      *思路:先将字符串拆分为一个字符数组
  8.      *再通过循环判断这个数组的第一个元素和最后一个元素是否相等,然后依次判断第二个和到数第二个
  9.      * ......
  10.          */
  11.         public static void main(String[] args) {
  12.                 //从控制台结收用户输入的一个字符串
  13.       Scanner sc=new Scanner(System.in);
  14.       System.out.println("请输入一个字符串:");
  15.       String str=sc.next();
  16.       //将字符串转换为一个字符数组
  17.         char [] charstr=str.toCharArray();
  18.         int j=1;//定义一个变量,赋值为1
  19.          for(int i=0;i<charstr.length;i++)//循环字符数组
  20.          {
  21.                  if(charstr[i]==charstr[charstr.length-j])//当数组的第一个元素和最后一个元素相等的时候
  22.                  {
  23.                          if(i==j||i+j==charstr.length||j==charstr.length)//判断数组是否循环到最后
  24.                          {
  25.                                  System.out.println("这个字符串是对称字符串");//打印输出是对称字符串
  26.                                  return;//结束程序
  27.                          }
  28.                  }
  29.                  j++;//变量自加,判断第二位,和倒数第二位字符
  30.          }
  31.          //最后输出不是对称字符串
  32.          System.out.println("这个字符串不是对称字符串");  
  33.         }
  34. }
复制代码

曾经是我的基础测试题

评分

参与人数 1技术分 +2 收起 理由
朱神必 + 2

查看全部评分

回复 使用道具 举报
本帖最后由 tcny 于 2014-3-26 00:43 编辑
  1. public static void main(String[] args) {
  2.                 // 声明一个字符串
  3.                 String string = "baaa";
  4.                 System.out.println(method(string));
  5.         }
  6.         //定义一个返回值是Boolean类型的方法,实现判断字符串是否对称的功能
  7.         public static boolean method(String s){
  8.                 // 把字符串转换成字符数组
  9.                 char[] ch = s.toCharArray();
  10.                 // 利用循环进行判断
  11.                 for(int i = 0,j = ch.length-1;i<j;i++,j--){
  12.                         //  进行判断
  13.                         if(ch[i] == ch[j]){
  14.                                 return true;
  15.                         }//问题出在这里,只要有一个相等那么就返回true了,你应该判断if(ch[i] != ch[j] { return false;}因为只要有一个不相等,那就不对称
  16.                         
  17.                 }
  18.                 return false//同时这里修改为return true; 因为上边比较完所有的之后如果还没找到不对称的话那就是都对称了。
  19.         }
复制代码

评分

参与人数 1技术分 +2 收起 理由
朱神必 + 2

查看全部评分

回复 使用道具 举报
:handshake
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马