一道java找错题

来源:互联网 发布:数据库维护计划 编辑:程序博客网 时间:2024/05/01 22:35

这里是一道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水平有限,所提供的答案,只是用于参考,对于有疑问的同学,欢迎讨论!

0 0