黑马程序员技术交流社区

标题: 求大神 给个思想 不要答案 就思想 明确点 谢谢 [打印本页]

作者: Bin丶    时间: 2016-6-14 22:07
标题: 求大神 给个思想 不要答案 就思想 明确点 谢谢
(1)定义数字字符串数组{"010","3223","666","7890987","123123"}
        (2)判断该数字字符串数组中的数字字符串是否是对称(第一个数字和最后一个数字相等,第二个数字和倒数第二个数字是相等的,依次类推)的,并逐个输出
        (3)如:010 是对称的,3223 是对称的,123123 不是对称的
       
        提示:循环获取字符串的每一个字符,依次比较第一个和最后一个,第二个和倒数第二个。。。
作者: 我是你岁哥❤环    时间: 2016-6-14 22:25
思路:
        1.定义一个标志flag,当flag为true时,表示一个数字字符串满足(2)中要求
        2.循环遍历数组中的元素for循环,元素满足条件时,即flag=true时,输出打印这个元素
        3.在for循环中内嵌一个for循环判断每个数字字符串是否满足(2)中要求,不满足要求,设置标记flag,为false,同时跳出内循环
作者: zhoubinjian    时间: 2016-6-14 23:49
思路2:1定义一个计数器count,用来计数一个字符串字符相同的个数
2.将字符串转字符数组,通过for循环,次数为arr.length()/2,for里面判断字符相同count自增
3.当count为arr.length()输出这个字符为对称
作者: 我是你岁哥❤环    时间: 2016-6-15 07:33
思路:
        1.将字符串反转,如果反转后与字符串相同,则表示这个字符串是对称的
                反转:        StringBuffer sb;        sb.reverse()方法
                转换成字符串:        String str = sb.reverse().toString();
                判断是否与原字符串相等:        str.equals(arr[i]);
        2.使用for循环遍历数组中的元素,进行步骤一中的判断,满足输出这个数组元素是对称的,不满足输出这个元素是不对称的

作者: 我是你岁哥❤环    时间: 2016-6-15 07:34
  1. package com.heima.test;

  2. public class Test3 {

  3.         /**
  4.          * 分析以下需求,并用代码实现:
  5.                 (1)定义数字字符串数组{"010","3223","666","7890987","123123"}
  6.                 (2)判断该数字字符串数组中的数字字符串是否是对称(第一个数字和最后一个数字相等,
  7.                         第二个数字和倒数第二个数字是相等的,依次类推)的,并逐个输出
  8.                 (3)如:010 是对称的,3223 是对称的,123123 不是对称的
  9.                
  10.                 提示:循环获取字符串的每一个字符,依次比较第一个和最后一个,第二个和倒数第二个。。。
  11.                 思路:
  12.                 1.定义一个标志flag,当flag为true时,表示一个数字字符串满足(2)中要求
  13.                 2.循环遍历数组中的元素for循环,元素满足条件时,即flag=true时,输出打印这个元素
  14.                 3.在for循环中内嵌一个for循环判断每个数字字符串是否满足(2)中要求,不满足要求,设置标记flag,为false,同时跳出内循环
  15.          */
  16.        
  17.         public static void main(String[] args) {
  18.                
  19.                 String[] arr = {"010", "3223", "666", "7890987", "123123"};
  20.                
  21.                 printArray(arr);
  22.                
  23.         }

  24.         public static void printArray(String[] arr) {
  25.                
  26.                 boolean flag = true;
  27.                 for (int i = 0; i < arr.length; i++) {
  28.                         for (int j = 0; j < arr[i].length()/2; j++) {
  29.                                
  30.                                 //获取字符数组中第(i+1)字符串中的第(j+1)个字符
  31.                                 char ch1 = arr[i].charAt(j);
  32.                                 //获取字符数组中第i个字符串中的倒数第(j+1)个字符
  33.                                 char ch2 = arr[i].charAt(arr[i].length()-1-j);
  34.                                 //判断这个两个字符是否相等
  35.                                 if (ch1 != ch2) {                //不相等,不满足要求
  36.                                         flag = false;                //不满足要求设置标记flag为false
  37.                                         break;                                //跳出循环,停止判断第i个字符串,判断下一个字符串
  38.                                 }
  39.                         }
  40.                         if (flag) {
  41.                                 System.out.println(arr[i] + " 是对称的");
  42.                         } else {
  43.                                 System.out.println(arr[i] + " 是不对称的");
  44.                         }
  45.                 }
  46.         }

  47. }
复制代码



作者: 我是你岁哥❤环    时间: 2016-6-15 07:37
  1. package com.heima.test;

  2. public class Test3_Sb {

  3.         /**
  4.          * 分析以下需求,并用代码实现:
  5.                 (1)定义数字字符串数组{"010","3223","666","7890987","123123"}
  6.                 (2)判断该数字字符串数组中的数字字符串是否是对称(第一个数字和最后一个数字相等,
  7.                         第二个数字和倒数第二个数字是相等的,依次类推)的,并逐个输出
  8.                 (3)如:010 是对称的,3223 是对称的,123123 不是对称的
  9.                
  10.                 提示:循环获取字符串的每一个字符,依次比较第一个和最后一个,第二个和倒数第二个。。。
  11.                 思路:
  12.                 1.将字符串反转,如果反转后与字符串相同,则表示这个字符串是对称的
  13.                         反转:        StringBuffer sb;        sb.reverse()方法
  14.                         转换成字符串:        String str = sb.reverse().toString();
  15.                         判断是否与原字符串相等:        str.equals(arr[i]);
  16.                 2.使用for循环遍历数组中的元素,进行步骤一中的判断,满足输出这个数组元素是对称的,不满足输出这个元素是不对称的
  17.          */
  18.        
  19.         public static void main(String[] args) {
  20.                
  21.                 String[] arr = {"010", "3223", "666", "7890987", "123123"};
  22.                
  23.                 for (int i = 0; i < arr.length; i++) {
  24.                         StringBuffer sb = new StringBuffer(arr[i]);
  25.                         String str = sb.reverse().toString();
  26.                         if (str.equals(arr[i])) {
  27.                                 System.out.println(arr[i] + " 是对称的!");
  28.                         } else {
  29.                                 System.out.println(arr[i] + " 是不对称的!");
  30.                         }
  31.                 }
  32.                
  33.         }

  34. }
复制代码







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