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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值