A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 暗夜精灵 初级黑马   /  2016-9-12 14:09  /  502 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

请问各位大神们如何把字符串数组里的回文字符串打印出来,并统计出个数呢?
例如:String [] arr={"12321","445544","123456","12021"}.

11 个回复

倒序浏览
API回看吗?里面有方法,转出数组,你查下,自己动手,记忆深刻
回复 使用道具 举报
思路:将字符串数组中的每个字符串转换成为字符数组,然后遍历字符数组,比较第一个和最后一个是否相等,以此类推,如果都相等将让计数器加一并输出字符串
回复 使用道具 举报
不羁的码农 发表于 2016-9-12 14:46
思路:将字符串数组中的每个字符串转换成为字符数组,然后遍历字符数组,比较第一个和最后一个是否相等,以 ...

思路我清晰,就是代码不知道怎么实现 我可以把不是回文的找出来 并打印. 是回文的打印不出来,统计出来的次数
好像老是输出几次
回复 使用道具 举报
这个是练习题吧..你不需要将对称和不对称分别打印出来?
回复 使用道具 举报
遍历数组取出每个元素然后再判断字符串看是否要打印吧
回复 使用道具 举报
孙洪勇 发表于 2016-9-12 19:17
遍历数组取出每个元素然后再判断字符串看是否要打印吧

一直想要两个for循环做的结果搞不定
回复 使用道具 举报
暗夜精灵 发表于 2016-9-12 19:19
一直想要两个for循环做的结果搞不定

一个for循环取出字符串元素,然后把取出的字符串转字符数组,再进行头尾同时向中间的遍历,比较每个字符是否相同
回复 使用道具 举报
孙洪勇 发表于 2016-9-12 19:17
遍历数组取出每个元素然后再判断字符串看是否要打印吧

本来想用两个for循环搞的,一直没搞定
回复 使用道具 举报
暗夜精灵 发表于 2016-9-12 18:08
思路我清晰,就是代码不知道怎么实现 我可以把不是回文的找出来 并打印. 是回文的打印不出来,统计出来的次 ...

你应该是if判断语句加错地方了,下面是我自己写的答案,你可以比对一下...
public class Test {
        public static void main(String[] args) {
                String [] arr={"12321","445544","123456","12021"};
                int count = 0;
                a:for (String string : arr) {
                        char[] chs = string.toCharArray();
                        for (int i = 0; i < chs.length/2; i++) {
                                if(chs!=chs[chs.length-1-i]){
                                        continue a;
                                }
                        }
                        count++;
                        System.out.println(string);
                }
                System.out.println("个数为:"+count);
        }
}
回复 使用道具 举报
你应该是if判断语句加错地方了,下面是我自己写的答案,你可以比对一下...
public class Test {
        public static void main(String[] args) {
                String [] arr={"12321","445544","123456","12021"};
                int count = 0;
                a:for (String string : arr) {
                        char[] chs = string.toCharArray();
                        for (int i = 0; i < chs.length/2; i++) {
                                if(chs[i]!=chs[chs.length-1-i]){
                                        continue a;
                                }
                        }
                        count++;
                        System.out.println(string);
                }
                System.out.println("个数为:"+count);
        }
}
回复 使用道具 举报 1 0
不羁的码农 发表于 2016-9-12 20:41
你应该是if判断语句加错地方了,下面是我自己写的答案,你可以比对一下...
public class Test {
        public stat ...

灰常感谢,你这个continue a;用的漂亮
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马