黑马程序员技术交流社区

标题: 判断是否是回文,为什么不对呢?求大神。 [打印本页]

作者: Death、    时间: 2015-1-4 21:28
标题: 判断是否是回文,为什么不对呢?求大神。
package com.itheima;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Test3 {

        public static void main(String[] args) throws IOException {

                // 创建一个输入流,接收输入的字符串
                BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
                String line = null;
                while ((line = br.readLine()) != null) {
                        if ("".equals(line))
                                break;

                        // 创建一个布尔型变量,用于返回判断的结果
                        boolean s = isDCC(line);

                        // 调用方法
                        System.out.println(s);
                }

        }

        private static boolean isDCC(String line) {

                // 根据传入的字符创建一个缓存对象 sb
                StringBuffer sb = new StringBuffer(line);

                // 将字符的内容倒置,存入到另一个对象
                StringBuffer sb1 = sb.reverse();

       

                将两个对象转换成数组
                 char[] s1 = sb.toString().toCharArray();
                 char[] s2 = sb1.toString().toCharArray();
               
                //判断两个数组中的元素是否相等
                 boolean s = true;
                for(int i=0;i<s1.length;i++){
                 if(s1[i] == s2[i]){
                s = true;
                 }
                 else{
                 s = false;
                /break;
                 }
                }
              return s;
        }
}



作者: 常强儿    时间: 2015-1-4 21:47
sb.reverse();是把sb给逆序了,StringBuffer sb1=sb.reverse();更是把两个都指向了一个对象,结果当然永远是true;
作者: Eagle    时间: 2015-1-5 14:18
  1.         // 回文数判断,是就返回true,不是则返回false
  2.         public static boolean isPalindrome(int num) {
  3.                
  4.                 StringBuilder sb = new StringBuilder();
  5.                 StringBuilder sb1 = new StringBuilder();
  6.                
  7.                 sb.append(num);
  8.                 sb1.append(num);

  9.                 //反转缓冲区
  10.                 sb.reverse();
  11.                
  12.                 if(sb.toString().equals(sb1.toString()))
  13.                         return true;
  14.                
  15.                 return false;
  16.         }
复制代码





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