Educoder–Java 第1关:Object类 第2关:JAVA基础类型包装类-练习 第3关:String&StringBuilder&StringBuffer类-练习 第4关:Random类

第1关:Object类

编程要求

请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:

Demo类和Person类已经写好,在测试类中创建Demo类对象d1,传入输入值num1, d1调用toString方法并打印输出该值;

创建Demo类对象d2,同样传入输入值num1,打印判断d1和d2是否相等(实际是比较地址);

创建Person类对象p,传入输入值num2,打印判断d1和p是否相等(实际是比较地址);

测试说明

补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。

测试输入: 100 100

预期输出: Demo:100 true false

答案

    package case1;
    import java.util.Scanner;
    public class ObjectTest {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            int num1 = sc.nextInt();
            int num2 = sc.nextInt();
            // 在测试类中创建Demo类对象d1,传入输入值num1, d1调用toString方法并打印输出该值
            // 创建Demo类对象d2,同样传入输入值num1,打印判断d1和d2是否相等(实际是比较地址)
            /********* Begin *********/
            Demo d1 = new Demo(num1);
            System.out.println(d1.toString());
            Demo d2 = new Demo(num1);
            System.out.println(d1.equals(d2));
            /********* End *********/
            // 创建Person类对象p,传入输入值num2,打印判断d1和p是否相等(实际是比较地址)
            /********* Begin *********/
            Person p = new Person(num2);
            System.out.println(d1.equals(p));
            /********* End *********/
        }
    }
    class Demo {
        private int num;
        public Demo(int num) {
            this.num = num;
        }
        public boolean equals(Object obj) // Object obj = new Demo()
        {
            if (!(obj instanceof Demo)) // 判断obj是否和Demo是同类
                return false;
            Demo d = (Demo) obj; // 将父类的引用(Object)向下转换为子类(Demo)
            return this.num == d.num;
        }
        public String toString() {
            return "Demo:" + num; // 返回对象的值(每一个对象都有自己的特定的字符串)
        }
    }
    class Person {
        private int num;
        public Person(int num) {
            this.num = num;
        }
    }


第2关:JAVA基础类型包装类-练习

任务描述

通过所学知识,完成本关任务。
####相关知识

编程要求

请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:

编写测试类,输入int型值aa传递给Integer类对象a,String型值bb传递给Integer类对象b,输入int型值c,aa、bb、c对应的数值相等;

输入String型值str11传递给String类对象str1,输入String型值str22传递给String类对象str2,str1和str2对应的内容相同;

打印输出a == b、a == c、b == c、a.equals(b);

打印输出str1 == str2、str1.equals(str2)。

测试说明

补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。

测试输入:
100
100
100
educoder
educoder
预期输出:
false
true
true
true
false
true

答案

package case2;

import java.util.Scanner;

public class WrapperTest {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int aa = sc.nextInt();
		String bb = sc.next();
		int c = sc.nextInt();
		String str11 = sc.next();
		String str22 = sc.next();
		// 包装类中“==”与equals的用法比较
		// 值得注意的是,包装类中的equals方法和String类一样,都是重写了Object类中的equals方法,因此比较的是内容而不是地址,
		// 而“==”比较的依然是引用变量的地址,只是当包装类型和与之相对应的基本类型进行“==”比较时会先做自动拆箱处理。
		/********* Begin *********/
		Integer a=new Integer(aa);
		Integer b=Integer.parseInt(bb);
		String str1=new String(str11);
		String str2=new String(str22);
		System.out.println(a==b);
		System.out.println(a==c);
		System.out.println(b==c);
		System.out.println(a.equals(b));
		System.out.println(str1==str2);
		System.out.println(str1.equals(str2));
		/********* End *********/
	}
}

第3关:String&StringBuilder&StringBuffer类-练习

任务描述

通过所学知识,完成本关任务。
####相关知识

####编程要求
[comment]: <> (“编程要求”部分介绍本关任务的具体要求,如实现步骤,规则等,最好能给出效果图)
请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:

编写测试类,输入一个标准的网址,输出其域名的主体;

将该主体转换为大写,打印输出;

具体输出要求请看测试说明。

测试说明

补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。

测试输入:

https://www.educoder.net/

预期输出:

educoder
EDUCODER

答案

package case3;

import java.util.Scanner;

public class StringTest {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String str = sc.next();
		// String substring(int start,int end)
		// 截取字符串,传入的两个参数分别为要截取边界的下标
		// 在java api 中,通常使用两个数字表示范围时,都是含头不含尾,即包含起始下标对应的内容,但不包含结束下标的处对应的内容
		// String toUpperCase() 将当前字符串中的英文部分转换为全大写
		/********* Begin *********/
		String str1=str.substring(12,str.lastIndexOf('.'));
		if(str1.indexOf('.')>0){
			str1=str1.substring(0,str1.indexOf('.'));
		}
		System.out.println(str1);
		str1=str1.toUpperCase();
		System.out.println(str1);
		/********* End *********/
	}
}

第4关:Random类

测试说明

补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。

测试输入:
1
预期输出:
NAvZuG

答案

package case4;

//密码的自动生成器:密码由大写字母/小写字母/数字组成,生成六位随机密码
import java.util.Random;
import java.util.Scanner;

public class RandomTest {
	public static void main(String[] args) {
		// 定义一个字符型数组
		char[] pardStore = new char[62];
		// 把所有的大写字母放进去 把所有的小写字母放进去 把0到9放进去
		/********* Begin *********/
		for(int i=0;i<26;i++)
		{
			pardStore[i]=(char)('A'+i);
			pardStore[26+i]=(char)('a'+i);
		}
		for(int i=0;i<10;i++)
		{
			pardStore[52+i]= (char)('0' + i);
		}
		/********* End *********/
		// 分别以1、2、3作为种子数 生成6位随机密码
		Scanner sc = new Scanner(System.in);
		int seed = sc.nextInt();
		/********* Begin *********/
		Random r=new Random(seed);
		String str="";
		int[] arr=r.ints(6,0,62).toArray();
		for(int i=0;i<6;i++)
		{
			str+=pardStore[arr[i]];
		}
		System.out.print(str);
		/********* End *********/
	}
}

  • 5
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值