黑马程序员技术交流社区
标题:
求大神 给个思想 不要答案 就思想 明确点 谢谢
[打印本页]
作者:
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
package com.heima.test;
public class Test3 {
/**
* 分析以下需求,并用代码实现:
(1)定义数字字符串数组{"010","3223","666","7890987","123123"}
(2)判断该数字字符串数组中的数字字符串是否是对称(第一个数字和最后一个数字相等,
第二个数字和倒数第二个数字是相等的,依次类推)的,并逐个输出
(3)如:010 是对称的,3223 是对称的,123123 不是对称的
提示:循环获取字符串的每一个字符,依次比较第一个和最后一个,第二个和倒数第二个。。。
思路:
1.定义一个标志flag,当flag为true时,表示一个数字字符串满足(2)中要求
2.循环遍历数组中的元素for循环,元素满足条件时,即flag=true时,输出打印这个元素
3.在for循环中内嵌一个for循环判断每个数字字符串是否满足(2)中要求,不满足要求,设置标记flag,为false,同时跳出内循环
*/
public static void main(String[] args) {
String[] arr = {"010", "3223", "666", "7890987", "123123"};
printArray(arr);
}
public static void printArray(String[] arr) {
boolean flag = true;
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length()/2; j++) {
//获取字符数组中第(i+1)字符串中的第(j+1)个字符
char ch1 = arr[i].charAt(j);
//获取字符数组中第i个字符串中的倒数第(j+1)个字符
char ch2 = arr[i].charAt(arr[i].length()-1-j);
//判断这个两个字符是否相等
if (ch1 != ch2) { //不相等,不满足要求
flag = false; //不满足要求设置标记flag为false
break; //跳出循环,停止判断第i个字符串,判断下一个字符串
}
}
if (flag) {
System.out.println(arr[i] + " 是对称的");
} else {
System.out.println(arr[i] + " 是不对称的");
}
}
}
}
复制代码
作者:
我是你岁哥❤环
时间:
2016-6-15 07:37
package com.heima.test;
public class Test3_Sb {
/**
* 分析以下需求,并用代码实现:
(1)定义数字字符串数组{"010","3223","666","7890987","123123"}
(2)判断该数字字符串数组中的数字字符串是否是对称(第一个数字和最后一个数字相等,
第二个数字和倒数第二个数字是相等的,依次类推)的,并逐个输出
(3)如:010 是对称的,3223 是对称的,123123 不是对称的
提示:循环获取字符串的每一个字符,依次比较第一个和最后一个,第二个和倒数第二个。。。
思路:
1.将字符串反转,如果反转后与字符串相同,则表示这个字符串是对称的
反转: StringBuffer sb; sb.reverse()方法
转换成字符串: String str = sb.reverse().toString();
判断是否与原字符串相等: str.equals(arr[i]);
2.使用for循环遍历数组中的元素,进行步骤一中的判断,满足输出这个数组元素是对称的,不满足输出这个元素是不对称的
*/
public static void main(String[] args) {
String[] arr = {"010", "3223", "666", "7890987", "123123"};
for (int i = 0; i < arr.length; i++) {
StringBuffer sb = new StringBuffer(arr[i]);
String str = sb.reverse().toString();
if (str.equals(arr[i])) {
System.out.println(arr[i] + " 是对称的!");
} else {
System.out.println(arr[i] + " 是不对称的!");
}
}
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2