头歌(educoder)第 6 章 Java面向对象之常用类

目录

Java面向对象 - 包装类

第1关 基本数据类型和包装类之间的转换

第2关 包装类转换成其他数据类型

第3关 包装类与字符串之间的转换

Java面向对象 - 常用类

第1关 Object类

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

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

第4关 Random类

第5关 Date类和SimpleDateFormat类的用法

第6关 Math类

Java面向对象 - String类

第1关 length()方法与compareTo()方法的使用 - 花名册

第2关 substring()方法与indexOf()方法的使用 - 姓名查找

第3关 String串类操作 - 文件名与邮箱验证

第4关 StringBuffer类的定义和使用 - 字母反转


Java面向对象 - 包装类

第1关 基本数据类型和包装类之间的转换

package step1;

public class Task {
	public static void main(String[] args) {
		
//请在此添加实现代码
/********** Begin **********/
//定义float对象
		float f = 66.6f;
		
		//手动装箱
		Float f1 =    new Float(f)   ;
		
		//自动装箱 
		Float f2 =      f ;
		
		System.out.println("装箱后的结果为:" + f1 + "和" + f2);
		
		
		//定义一个Double包装类值为88.88
		Double d =  new Double(88.88)     ;
		
		//手动拆箱
		double d1 =   d.doubleValue()   ;
		
		//自动拆箱
		double d2 =     d ;
		
		System.out.println("拆箱结果为:" + d1 + "和" + d2);
		

/********** End **********/
		
	}

}

第2关 包装类转换成其他数据类型

package step2;

public class Task {
	public static void main(String[] args) {

//请在此添加实现代码
/********** Begin **********/
// 定义int类型变量,值为67
		int score = 67;

		// 创建Integer包装类对象,表示变量score的值
		Integer score1 = new Integer(score);

		// 将Integer包装类转换为double类型
		double score2 =   score1.doubleValue()  ; 

		// 将Integer包装类转换为float类型
		float score3 =  score1.floatValue()    ;

		// 将Integer包装类转换为int类型
		int score4 =    score1.intValue()    ;

		System.out.println("Integer包装类:" + score1);
		System.out.println("double类型:" + score2);
		System.out.println("float类型:" + score3);
		System.out.println("int类型:" + score4);


/********** End **********/
		
	}
}

第3关 包装类与字符串之间的转换

package step3;

public class Task {
	public static void main(String[] args) {
		double a = 78.5;
        
//请在此添加实现代码
/********** Begin **********/
//将基本类型a转换为字符串
		String str =   Double.toString(a)   ;
        
		System.out.println("str + 12  的结果为: "+(str + 12));
		
		String str1 = "180.20";
	    // 将字符串str1转换为基本类型
		double d =  Double.parseDouble(str1)   ;
	
		System.out.println("d + 100 的结果为: "+ (d + 100));

/********** End **********/
		

	} 
}


Java面向对象 - 常用类

第1关 Object类

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);
		if(d1.equals(d2)){
			System.out.println("true");
		}else{
			System.out.println("false");
		}

		/********* End *********/
		// 创建Person类对象p,传入输入值num2,打印判断d1和p是否相等(实际是比较地址)
		/********* Begin *********/
		Person p=new Person(num2);
		if(d1.equals(p)){
			System.out.println("true");
		}else{
			System.out.println("false");
		}

		/********* 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基础类型包装类-练习

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类-练习

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类

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关 Date类和SimpleDateFormat类的用法

package case5;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

public class DateTest {
	public static void main(String[] args) throws ParseException {
		// 键盘录入你的出生年月日 格式为yyyy-MM-dd
		// 把该字符串转换为一个日期
		// 通过该日期得到一个毫秒值
		// 获取2020年10月1日的毫秒值
		// 两者想减得到一个毫秒值
		// 把该毫秒值转换为天 打印输出
		Scanner sc = new Scanner(System.in);
		String line = sc.nextLine();
		/********* Begin *********/
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
		Date d1=sdf.parse(line);
		Date d2=sdf.parse("2020-10-01");
		long diff=d2.getTime()-d1.getTime();
		diff=diff/86400000;
		System.out.println("你的出生日期距离2020年10月1日:"+diff+"天");

		/********* End *********/
	}
}

第6关 Math类

package case6;

import java.util.Scanner;
import java.lang.Math;

public class MathTest {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a1 = sc.nextInt();
		int a2 = sc.nextInt();
		int a3 = sc.nextInt();
		int a4 = sc.nextInt();
		double a5 = sc.nextDouble();
		double a6 = sc.nextDouble();
		double a7 = sc.nextDouble();
		double a8 = sc.nextDouble();
		double a9 = sc.nextDouble();
		double a10 = sc.nextDouble();
		double a11 = sc.nextDouble();
		/********* Begin *********/
		System.out.println(Math.sqrt(a1));
		System.out.println(Math.cbrt(a2));
		System.out.println(Math.pow(a3,a4));
		System.out.println(Math.max(a5,a6));
		System.out.println(Math.min(a5,a6));
		System.out.println(Math.abs(a7));
		System.out.println(Math.ceil(a8));
		System.out.println(Math.floor(a9));
		System.out.println(Math.rint(a10));
		System.out.println(Math.round(a11));

		/********* End *********/
	}
}

Java面向对象 - String类

第1关 length()方法与compareTo()方法的使用 - 花名册

package step1;

import java.util.Scanner;

public class Roster {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        /********** Begin *********/
        String roster1=scanner.nextLine();
        String roster2=scanner.nextLine();
        int len1=roster1.length();
        int len2=roster2.length();
        System.out.println(len1);
        System.out.println(len2);
        if(roster1.compareTo(roster2)==0){
            System.out.println("相同");

        }else System.out.println("不相同");



        /********** End *********/
    }
}

第2关 substring()方法与indexOf()方法的使用 - 姓名查找

package step2;

import java.util.Scanner;

public class NameSearch {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        /********** Begin *********/
        String data=scanner.nextLine();
        String name=scanner.nextLine();
        int i=0,a=0;
        while(i<=data.length()){
            a=data.indexOf(name,i);
            if(a!=-1){
                System.out.println(a);
                i=a+1;
            }else i++;
        }



        /********** End *********/
    }
}

第3关 String串类操作 - 文件名与邮箱验证

package step3;

public class HelloWorld {

	public void judge(String fileName,String email){
		//请在此添加实现代码
/********** Begin **********/
	if(fileName.lastIndexOf(".")==-1)
	System.out.println("Java文件名无效");
	else{
	String s=fileName.substring(fileName.lastIndexOf("."),fileName.length());
	if(fileName.equals(".java")||(s.equals(".java")==false))
	System.out.println("Java文件名无效");
	else
	System.out.println("Java文件名正确");
	}
	int a=email.indexOf('@'),b=email.indexOf('.');

	if(a!=-1&&b!=-1&&email.lastIndexOf('@')<email.indexOf('.'))
	System.out.println("邮箱名正确");
	else
	System.out.println("邮箱名无效");

/********** End **********/
	}}
	

第4关 StringBuffer类的定义和使用 - 字母反转

package step4;

public class Reverse {
    public static StringBuffer start(String data) {
        StringBuffer ans = new StringBuffer();
        /********** Begin *********/

String[] abc=data.split(" ");
for (int i = 0; i < abc.length; i++) {
        StringBuffer a=new StringBuffer(abc[i]);
        ans.append(a.reverse());
                 ans.append(" ");
                       }
        /********** End *********/
        return ans;
    }
}

猜你喜欢

转载自blog.csdn.net/qq_35353972/article/details/126960635
今日推荐