黑马程序员技术交流社区

标题: 新手请指导 [打印本页]

作者: 暗夜精灵    时间: 2016-9-12 14:09
标题: 新手请指导
请问各位大神们如何把字符串数组里的回文字符串打印出来,并统计出个数呢?
例如:String [] arr={"12321","445544","123456","12021"}.
作者: Jarc    时间: 2016-9-12 14:22
API回看吗?里面有方法,转出数组,你查下,自己动手,记忆深刻
作者: 不羁的码农    时间: 2016-9-12 14:46
思路:将字符串数组中的每个字符串转换成为字符数组,然后遍历字符数组,比较第一个和最后一个是否相等,以此类推,如果都相等将让计数器加一并输出字符串
作者: 暗夜精灵    时间: 2016-9-12 18:08
不羁的码农 发表于 2016-9-12 14:46
思路:将字符串数组中的每个字符串转换成为字符数组,然后遍历字符数组,比较第一个和最后一个是否相等,以 ...

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

一直想要两个for循环做的结果搞不定
作者: 孙洪勇    时间: 2016-9-12 19:22
暗夜精灵 发表于 2016-9-12 19:19
一直想要两个for循环做的结果搞不定

一个for循环取出字符串元素,然后把取出的字符串转字符数组,再进行头尾同时向中间的遍历,比较每个字符是否相同
作者: 暗夜精灵    时间: 2016-9-12 19:29
孙洪勇 发表于 2016-9-12 19:17
遍历数组取出每个元素然后再判断字符串看是否要打印吧

本来想用两个for循环搞的,一直没搞定
作者: 不羁的码农    时间: 2016-9-12 20:39
暗夜精灵 发表于 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);
        }
}
作者: 不羁的码农    时间: 2016-9-12 20:41
你应该是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);
        }
}
作者: 暗夜精灵    时间: 2016-9-12 22:01
不羁的码农 发表于 2016-9-12 20:41
你应该是if判断语句加错地方了,下面是我自己写的答案,你可以比对一下...
public class Test {
        public stat ...

灰常感谢,你这个continue a;用的漂亮




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