今天上自习做了一个题,感觉这道题不错,特写出来与给位分享一下思路,给位有更好的思路回复讨论。
题目是这样的:
(1)定义数字字符串数组{"010","3223","666","7890987","123123"}
(2)判断该数字字符串数组中的数字字符串是否是对称(第一个数字和最后一个数字相等,第二个数字和倒数第二个数字是相等的,依次类推)的,并逐个输出
(3)如:010 是对称的,3223 是对称的,123123 不是对称的
代码:
public class Demo_01 {
public static void main(String[] args) {
String[] s = {"010","3223","666","7890987","123123"};
String s1 = "";
for(int i=0;i<5;i++) { //第一层for循环把字符串数组转换成字符串
s1 = s[i];
char[] c2 =new char[s1.length()];
//System.out.println(s1);
for(int j=0;j<s1.length();j++) { // 这层for循环把字符串转换成字符数组
char c = s1.charAt(j);
c2[j] = c;
//System.out.print(c + " ");
}
for(int k=0;k<c2.length/2;k++) { // c2.length/2是判断的次数,
if(c2[k] == c2[c2.length-1-k]) {
if(k==c2.length/2-1) {
print(c2);
System.out.println("是对称的");
}
}else {
print(c2);
System.out.println("不是对称的");
break;
}
}
}
}
public static void print(char[] arr) { //遍历字符数组
for(int i=0;i<arr.length;i++) {
System.out.print(arr[i]);
}
}
}
做这道题的思路就是首先得把字符串数组成字符串,然后把字符串转换成字符数组用到String的charAt();方法,
在把字符串转换成字符数组char c = s1.charAt(j);在做判断 。
|
|