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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 茄子 高级黑马   /  2014-6-11 18:43  /  1248 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 茄子 于 2014-6-11 20:41 编辑

大家好,我是茄子,这会儿又着急了,,看了半天找不到问题,

诸位火眼金睛,给瞅瞅,问题出在哪里??

运行结果是:guanzuodonghellopamengcan
                    并非是:hello

跪求解释啊!!


class getMaxsubString
{
        public String getMaxsub(String s1,String s2)
        {
                for(int x=0;x<s2.length();x++)
                {
                        for(int y=0,z=s2.length()-x;z<=s2.length();y++,z++)    //…………………………………………在这里,老师的写法是z!=s2.length()+1
                                                                                                                         //对于这个,不是很理解,写成我这样不是更好理解嘛
                                                                                                                     
                        {
                                String temp=s2.substring(y,z);
                                if(s1.contains(temp));
                                return temp;
                        }
                        
                }
                return "zhaoyujie";
        }
        public void sop(Object obj)
        {
                System.out.println(obj);
        }
        
}

public class StringMethordTest4 {

        public static void main(String[] args)
        {
                String s1="zhaoyujieholleguoyonglaing";
                String s2="guanzuodonghellopamengcan";
                getMaxsubString g=new getMaxsubString();
                g.sop(g.getMaxsub(s1,s2));
               
        }

}


评分

参与人数 1技术分 +1 收起 理由
SyouRai_Tsk + 1

查看全部评分

9 个回复

倒序浏览
你的输出结果是s2是必然的,你看写的内循环中

if语句,你加了个;分号,这句话就废掉了

然后接着向下下执行,是不是直接就return了

而且返回结果是s2.substring(0,s2.length())


也就是s2呀,内外循环都是只执行了一次,over了
回复 使用道具 举报
你看你的字符串s1和时
回复 使用道具 举报
刚才没写完,恩错了,你看你的字符串s1和s2

"zhaoyujieholleguoyonglaing";

“guanzuodonghellopamengcan”

哥们,你这hello是在s2里不假,但是,s1里面可是holle啊,这、、、、要写认真了呀
回复 使用道具 举报
Gaara33 发表于 2014-6-11 18:51
刚才没写完,恩错了,你看你的字符串s1和s2

"zhaoyujieholleguoyonglaing";

大哥,这问题是解决了,但是,运行结果还是不正确的!!!至少应该是一个小的共有子串才是啊!!!您给小的再看看呗!!!
回复 使用道具 举报
茄子 发表于 2014-6-11 18:54
大哥,这问题是解决了,但是,运行结果还是不正确的!!!至少应该是一个小的共有子串才是啊!!!您给小 ...

我写下边了,if语句的用法,这一行,你不应该加;分号的,加之后,if语句就作废了,而且挡不住下边的return了,4楼还是5楼,我已经写了,你再看看
回复 使用道具 举报
看看  学习下
回复 使用道具 举报
茄子 高级黑马 2014-6-11 20:41:21
8#
Gaara33 发表于 2014-6-11 19:00
你的输出结果是s2是必然的,你看写的内循环中

if语句,你加了个;分号,这句话就废掉了

为什么,这种错误,我就是检查不出来呢!!你是怎么看出来的,有没有什么办法啊??教教我喽
回复 使用道具 举报
茄子 发表于 2014-6-11 20:41
为什么,这种错误,我就是检查不出来呢!!你是怎么看出来的,有没有什么办法啊??教教我喽 ...

呃、、、我觉得谁都会出些小错误,毕竟java语言这么严谨,可能是看别人的更容易找出错误吧,我有时候也会犯很多小错误。
回复 使用道具 举报
茄子 发表于 2014-6-11 20:41
为什么,这种错误,我就是检查不出来呢!!你是怎么看出来的,有没有什么办法啊??教教我喽 ...

哦,对了,不知道你用什么编程的,要是用MyEclipse的话,很多规范错误编译的时候就出来提示了,相对来说更容易发现错误,你可以试试。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马