一道java找错题

这里是一道java找错题,看看你能找到几个错:

这里写图片描述

我首先在android环境下,做了个调用StringReplace类的例子,找到了几个错误:

1,s 第一次使用时没有初始值
2,result 没有初始化
3,replace()函数,没有返回值
4,测试函数中,调用replace()函数时,需要先生成类的对象,才能调用。要不就改成static的。
5,replace()调用,缺一个参数
6,最后的打印,应该是replace()方法的返回值。

在android下调试,改错后如下:

    public class StringReplace{
        public String replace(String str, String pattern, String replace){
            int s = 0;
            int e=0;
            StringBuffer result=new StringBuffer();
            while((e=str.indexOf(pattern,s))>0){
                result.append(str.substring(s,e));
                result.append(replace);
                s=e+pattern.length();
            }
            result.append(str.substring(s));
            return result.toString();
        }
    }
    public void StringReplaceTest(){
        String scource = "i love java!";
        System.out.println("原来的:"+scource);
        StringReplace strReplace = new StringReplace();
        String str=strReplace.replace(scource,"o","a");
        System.out.println("结果:"+str);
    }

据说是总共有10个错误,那么其他的错误在哪里呢?
我想了想,应该是环境不同,我不是java环境,在android下编译的。那么,就完全按照原题的形式来一遍吧,果然又发现了几个问题:

7,StringReplace 之前,需要有class
8,main()之前,需要有 static void
9,变量名写错:scource 应该改为 source
10,同一个java文件中,只能有一个public声明的class,应该去掉StringReplace前面的public

最后如下:

import java.lang.*;

    class StringReplace{
        public String replace(String str, String pattern, String replace){
            int s = 0;
            int e=0;
            StringBuffer result=new StringBuffer();
            while((e=str.indexOf(pattern,s))>0){
                result.append(str.substring(s,e));
                result.append(replace);
                s=e+pattern.length();
            }
            result.append(str.substring(s));
            return result.toString();
        }
    }

    public class StringReplaceTest{

    public static void main(String[] args){
        String scource = "i love java!";
        System.out.println("原来的:"+scource);
        StringReplace strReplace = new StringReplace();
        String str=strReplace.replace(scource,"o","a");
        System.out.println("结果:"+str);
    }

}

由于本人Java水平有限,所提供的答案,只是用于参考,对于有疑问的同学,欢迎讨论!

猜你喜欢

转载自blog.csdn.net/lintax/article/details/54985445
今日推荐