分析:
一、
两层循环 ,第一层拿出数组的第i个索引的内容 第二层做比较(把第一个和最后一个比较,第二个和倒数第二个作比较)
str1=str[i];
str[1].charAt(j)==str[1].charAt(str[1].length-1-j) 判断这个是否相等 如果有一次不相等 就break;
else之后要做个判断
如果是对称,得判断最后一次的比较的索引和比较次数(字符串长度+1 然后对2取整,,长度单双数的问题)
然后计数器加一
这个是封装在一个方法里面解决的
public static int function(String[] str) {
int count = 0;
for (int i = 0; i < str.length; i++) {
String str1 = str[i];
int length = str1.length();
for (int j = 0; j <=((str1.length() + 1) / 2); j++) {
/*
str1.length() + 1) / 2 这个是比较次数
如果是abbc 长度为4 比较次数就是(4+1)/2=2 取整
如果是abbbc 长度为5 比较次数就是(5+1)/2=3
*/
if (str1.charAt(j) != str1.charAt(str1.length() - 1 - j)) {
break;//结束当前循环,比较下一个字符串
}
if (j == ((str1.length() + 1) / 2)) {
System.out.println(str1 + "是对称");
count++;
}
}
}
return count;
}
二、
也可以将判断这个字符串是否对称 封装成方法 ,返回值为Boolean型,,最后放在,
if(isDuichen(str1)){
count++
输出(str1是对称的);
}
(然后在判断的时候)三种思路
1.str[1].charAt(j)==str[1].charAt(str[1].length-1-j) 判断这个是否相等 如果有一次不相等 就break;
如果是对称,得判断最后一次的比较的索引和比较次数(字符串长度+1 然后对2取整,,长度单双数的问题)
才能返回true
否则返回false
2.字符串的逆序遍历
遍历完之后str2.equals(str1)
3.用StringBuild 的revers()方法将字符串翻转 然后toString() 然后equals(str)