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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 咪啪 中级黑马   /  2014-6-8 17:13  /  1158 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

        public static boolean isSame(String str)
        {
                int i,j;
                for(i=0;i<str.length()-1;i++);
                {
                        for(j=i+1;j<str.length();j++)
                        {
                                if(str.charAt(i)==str.charAt(j))
                                return true;
                        }                       
                }
                return false;
        }


        public static void main(String[] args)
        {
               
                System.out.println("请输入一个无重复字符的字符串");
                String str = new Scanner(System.in).nextLine();
                               
                if(isSame(str))
                        System.out.println("错误,字符串有重复字符");
                else
                        System.out.println(str);
                       
        }

我写的isSame函数用来判断一个字符串是否有重复字符
输入aac,直接输出aac了,这个isSame错在哪?要怎么改?

8 个回复

倒序浏览
这让我试了半天,结果问题在你for语句上,你不知道for()是不能跟分号的么,第一个for循环你看看,分号就是直接结束了这条语句就直接return false了
回复 使用道具 举报
丁绍然 发表于 2014-6-8 18:27
这让我试了半天,结果问题在你for语句上,你不知道for()是不能跟分号的么,第一个for循环你看看,分号就 ...

我擦,我没注意,难怪一直false,我以为问题出在 if(str.charAt(i)==str.charAt(j))上,然后又试了先转成数组比较完再转回来还是不行
回复 使用道具 举报
咪啪 发表于 2014-6-8 19:16
我擦,我没注意,难怪一直false,我以为问题出在 if(str.charAt(i)==str.charAt(j))上,然后又试了先转成 ...

坑爹啊啊   我还一直在试  搞了个把小时 搞不懂为啥  跑过来论坛一看  大跌眼镜  
回复 使用道具 举报
Hi天天向上 发表于 2014-6-8 19:28
坑爹啊啊   我还一直在试  搞了个把小时 搞不懂为啥  跑过来论坛一看  大跌眼镜   ...

我也是搞了很久,怎么运行都错才来提问的啊!!
回复 使用道具 举报
咪啪 发表于 2014-6-8 19:16
我擦,我没注意,难怪一直false,我以为问题出在 if(str.charAt(i)==str.charAt(j))上,然后又试了先转成 ...

毕老师说可以用输出语句查看哪里出问题了,很好用
我就写了好几个system.out.println,找到这行语句一细看就明白了
回复 使用道具 举报
丁绍然 发表于 2014-6-8 19:38
毕老师说可以用输出语句查看哪里出问题了,很好用
我就写了好几个system.out.println,找到这行语句一细 ...

每行下面加一句输出语句么?好办法
回复 使用道具 举报
呵呵。for后面没有分号了
回复 使用道具 举报
学习下 大家加油
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马