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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hyace 中级黑马   /  2014-3-21 23:37  /  3127 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 hyace 于 2014-3-21 23:41 编辑

最近几天开始申请的步骤,之前一直用的是C/C++,Java只是基础的掌握而已,写出来的代码不一定够规范正确,所以我想发到这里请大家参详,希望能够指正,谢谢~
2、 判断一个字符串是否是对称字符串,例如"abc"不是对称字符串,"aba"、"abba"、"aaa"、"mnanm"是对称字符串
  1. package com.itheima;
  2. /**
  3. * 2、 判断一个字符串是否是对称字符串,例如"abc"不是对称字符串,"aba"、"abba"、"aaa"、"mnanm"是对称字符串
  4. * @author Hyace
  5. *
  6. */
  7. import java.util.Scanner;

  8. public class Test2 {
  9.     public static void main(String[] args){
  10.         //从键盘输入
  11.         Scanner inp = new Scanner(System.in);
  12.         String s = inp.next();
  13.         System.out.println(pal(s));
  14.         }
  15.    
  16.     public static boolean pal(String str){
  17.         //定义字符串长度
  18.         int n = str.length();
  19.         //以下对str进行转置,存入temp中,比较str和temp,如果相等则返回true,否则返回false
  20.         String temp = "";
  21.         for(int i = 0;i<n;i++){
  22.                 temp+=str.charAt(n-1-i);        
  23.                 }
  24.         if(temp.equals(str)) return true;
  25.         else return false;
  26.     }

  27. }
复制代码


评分

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

查看全部评分

9 个回复

倒序浏览
循环中不应该小于n吧,应该小于n/2吧
回复 使用道具 举报
李东梁 发表于 2014-3-22 19:42
循环中不应该小于n吧,应该小于n/2吧

倒序复制一遍啊,n/2,复制出来是个啥
回复 使用道具 举报
感觉不用这么麻烦的,你看看我的这个怎么样?
  1. //读取键盘
  2.             BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));
  3.            
  4.             String line=null;
  5.            
  6.             while((line=bufr.readLine())!=null)
  7.             {
  8.                     if("over".equals(line))
  9.                             break;
  10.                     StringBuilder sb=new StringBuilder(line);
  11.                     sb=sb.reverse();
  12.                     //如果反转后的字符和原来的字符相同,就是回文字符串了
  13.                     if(line.equals(sb.toString()))
  14.                             System.out.println("这个是回文字符串--->源为:"+line+",反转后的为:"+sb.toString());
  15.                     else
  16.                             System.out.println("这个不是回文字符串--->源为:"+line+",反转后的为:"+sb.toString());
  17.            
  18.             }
  19.            
  20.             bufr.close();
复制代码

评分

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

查看全部评分

回复 使用道具 举报
我感觉优势很大 发表于 2014-3-23 17:38
感觉不用这么麻烦的,你看看我的这个怎么样?

恩谢谢~我还没接触到reverse等等,所以得自己手工来~
回复 使用道具 举报
代码真的不需要那么多。看看我的。i 从头开始遍历,j 从后开始遍历, 循环条件是 i < j
  1. public class Testt {

  2.         public static void main(String[] args) {

  3.                 Scanner in = new Scanner(System.in);
  4.                 System.out.println(isHui(in.next())) ;
  5.         }

  6.         public static boolean isHui(String str){
  7.                 for(int i = 0, j = str.length()-1; i < j; i++, j--){ //分别从两头开始比较,同步向中间靠拢
  8.                         if(str.charAt(i) != str.charAt(j)){
  9.                                 return false;
  10.                         }
  11.                 }
  12.                 return true;
  13.         }
  14. }
复制代码

评分

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

查看全部评分

回复 使用道具 举报
哥们,你插代码的时候,格式怎么调的
回复 使用道具 举报
hyace 中级黑马 2014-3-26 22:38:01
8#
bjfanxc 发表于 2014-3-26 19:54
哥们,你插代码的时候,格式怎么调的

不需要调啊,你什么情况
回复 使用道具 举报
hyace 发表于 2014-3-26 22:38
不需要调啊,你什么情况

我那个不自动缩进!
回复 使用道具 举报
hyace 中级黑马 2014-3-28 22:20:19
10#
bjfanxc 发表于 2014-3-27 13:59
我那个不自动缩进!

我直接复制进来就好了啊。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马