黑马程序员技术交流社区

标题: 大家帮看看问题在哪儿啊,这样判断那for不是没意义啦 [打印本页]

作者: 铁蛋    时间: 2015-7-27 17:29
标题: 大家帮看看问题在哪儿啊,这样判断那for不是没意义啦
  1. package com.itheima;
  2. /**
  3. * 3、判断一个字符串是否是对称字符串,例如"abc"不是对称字符串,"aba"、"abba"、"aaa"、"mnanm"是对称字符串
  4. * @author Vinvent Ge
  5. */
  6. import java.util.Scanner;

  7. public class Text3 {

  8.         public static void main(String[] args) {
  9.                 Scanner input = new Scanner(System.in);
  10.                 System.out.println("输入字符串");
  11.                 String str = input.next();     //输入字符串
  12.                 if(panduan(str))           //调用panduan()
  13.                 {
  14.                         System.out.println(str + ":" +"是对称字符串");
  15.                 }else
  16.                 {
  17.                         System.out.println(str + ":" +"不是对称字符串");
  18.                 }
  19.                 //aa();
  20.         }
  21.         public static boolean panduan(String str) {
  22.                 for(int i=0;i<str.length()/2;i++)     //for循环语句,遍历一半长度
  23.                 {
  24.                         if(str.charAt(i)!=(str.charAt(str.length()-i-1)))//判断首尾对称位置字符是否相同
  25.                         {
  26.                         return false;
  27.                         }else
  28.                         {
  29.                         return true;
  30.                         }
  31.                                
  32.                 }
  33.                 return false;
  34.         }
复制代码

       
作者: 铁蛋    时间: 2015-7-27 17:31
这return这样反值可以吗
  1. for(int i=0;i<str.length()/2;i++)     //for循环语句,遍历一半长度
  2.                 {
  3.                         if(str.charAt(i)!=(str.charAt(str.length()-i-1)))//判断首尾对称位置字符是否相同
  4.                         {
  5.                         return false;
  6.                         }else
  7.                         {
  8.                         return true;
  9.                         }
  10.                                 
  11.                 }
  12.                 return false;
复制代码

作者: 孙晓磊    时间: 2015-7-27 17:33
那你i怎么加
作者: DemoJameson    时间: 2015-7-27 17:47
判断函数改成这样

  1.         public static boolean panduan(String str) {
  2.                 for(int i=0;i<str.length()/2;i++)     //for 循环语句,遍历一半长度
  3.                 {
  4.                         if(str.charAt(i)!=(str.charAt(str.length()-i-1)))// 判断首尾对称位置字符是否相同
  5.                         {
  6.                              return false;
  7.                         }         
  8.                 }
  9.                 return true;
  10.         }
复制代码

作者: 铁蛋    时间: 2015-7-27 17:48
孙晓磊 发表于 2015-7-27 17:33
那你i怎么加

我好像搞明白了:D,我是跟另一种搞混了,完全两种思想啊
  1. public static void aa(){
  2.                 String str = "abba";
  3.                 int ts = 0;
  4.                 for(int i=0;i<str.length()/2;i++){
  5.                         if(str.charAt(i) == str.charAt(str.length()-1-i)){
  6.                                 ts++;
  7.                         }
  8.                 }
  9.                 if(ts == str.length()/2){
  10.                         System.out.println("ok");
  11.                 }else{
  12.                         System.out.println("no");
  13.                 }
  14.         }
复制代码

作者: 铁蛋    时间: 2015-7-27 18:58
DemoJameson 发表于 2015-7-27 17:47
判断函数改成这样

哦  我知道啦,有不相同就返回false,否则遍历完返回TRUE




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