Java基础练习题8--String与StringBuffer的性能区别||日期与字符串转换||计算出生天数||计算某年的二月有几天

Posted 小智RE0

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基础练习题8--String与StringBuffer的性能区别||日期与字符串转换||计算出生天数||计算某年的二月有几天相关的知识,希望对你有一定的参考价值。


String与StringBuffer的性能区别

  • 先使用String连接10000个字符串,计算消耗的时间
  • 再使用StringBuffer连接10000个字符串,计算各自消耗的时间

public class SandSbdDemo3 {
    public static void main(String[] args) {
        //区别
        //String类为值不可变的字符串;一旦值改变就新建一个对象;
        //StringBuffer类为值可变的字符串类;线程安全;

        //运行效率计算
        //String类;
        ss();
        //String运行时间:78
        //StringBuffer类;
        sbf();
        //StringBuffer运行时间:47
    }
    //String测试效率
        public static void ss(){
        String s = "123";
        long srart1 = System.currentTimeMillis();
        for (int i = 0; i < 10000; i++) {
            System.out.print(s + "");
        }
        long end1 = System.currentTimeMillis();
        System.out.println("String运行时间:" + (end1 - srart1));
    }
        //StringBuffer测试效率
        public static void sbf() {
            //StringBuffer
            StringBuffer s2 = new StringBuffer("123");
            long srart2 = System.currentTimeMillis();
            for (int i = 0; i < 10000; i++) {
                System.out.print(s2 + "");
            }
            long end2 = System.currentTimeMillis();
            System.out.println("StringBuffer运行时间:" + (end2 - srart2));
        }
}

制作一个工具类:DateUtil,进行日期和字符串之间的格式转换.

  • 定义两个方法:
  • 一个用于将字符串日期转为Date类型,并返回该Date类型
  • 一个用于将Date类型转为指定格式的字符串形式,并返回该字符串

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
 制作一个工具类:DateUtil,进行日期和字符串之间的格式转换.
定义两个方法:
一个用于将字符串日期转为Date类型,并返回该Date类型
一个用于将Date类型转为指定格式的字符串形式,并返回该字符串
 */
public class DateUtil {
    public static void main(String[] args) {
        //1.字符串转日期
        System.out.println(StringtoDate("2020-01-09", "yyyy-MM-dd"));
        //Thu Jan 09 00:00:00 CST 2020

        //2.指定日期转字符串格式;
        Date date=new Date(12345648L);
        System.out.println(DatetoString(date,"yyyy年MM月dd日 HH:mm:ss E"));
        //1970年01月01日 11:25:45 星期四

        //3.返回当前日期转字符串格式;
        System.out.println(DatetoString("yyyyMMddHHmmssE"));
        //20210525141309星期二
    }

    //1.字符串转日期
    public static Date StringtoDate(String s,String parse )  {
        SimpleDateFormat sdf=new SimpleDateFormat(parse);
        try {
            //返回Date类型;
            //这里需要进行异常处理;
            return sdf.parse(s);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }
    //2.指定日期转字符串格式;
    public static String DatetoString(Date date,String parse ){
        SimpleDateFormat sdf=new SimpleDateFormat(parse);
        return sdf.format(date);
    }
    //3.返回当前日期转字符串格式
    public static String DatetoString(String parse ){
        SimpleDateFormat sdf=new SimpleDateFormat(parse);
        //创建当前日期对象;
        Date date=new Date();
        //返回字符串形式
        return sdf.format(date);
    }
}


输入你的生日,计算你来到世界多少天了?


import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class BirthdayTOYou {
    public static void main(String[] args) {
        //启动输入生日的方法
        theDays(InputBirthday());
    }
    //将功能写在一个静态方法中;
    public static void theDays(String s){
        //这里需要预防且捕获异常;
        try{
            //将转化的日期定为date1;
            Date date1 = StringtoDate(s);
            //计算出生日期距离1970年1月1日,0点0分0秒的时间差毫秒值L1;
            long L1 = date1.getTime();
            //定义目前知执行的日期date2;
            Date date2 = new Date();
            //计算执行此程序的日期距离1970年1月1日,0点0分0秒的时间差毫秒值L2;
            Long L2 = date2.getTime();
            System.out.println("您已经来到这个世界===>" + ((L2 - L1) / (1000 * 60 * 60 * 24)) + "天");
        }
        catch (Exception e){
            System.out.println("你输入时格式错误!");
            e.printStackTrace();
        }
    }
    //输入生日的方法
    public static String InputBirthday(){
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入您的出生日期:(格式例如:2000-01-01)");
            String s = scanner.next();
            return s;
    }
    //字符串转日期类的方法;
    public static Date StringtoDate(String s) {
        //创建日期格式化类;
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        try {
            //使用parse转换格式;
            Date date = sdf.parse(s);
            return date;
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }
}

计算某年的二月有几天;

计算某年的二月有几天(闰年的2月有29天)


import java.util.Scanner;
public class FebruaryDays {
    public static void main(String[] args) {
        System.out.print("这一年的二月有:"+InputYear()+"天");
    }
    public static int InputYear(){
        Scanner scanner=new Scanner(System.in);
        System.out.println("启动后可计算某年的二月有几天");
        System.out.print("请输入年份:");
        int Year= scanner.nextInt();
        int[] array={28,29};
        //判断是否为闰年;
        if(((Year%4==0) && (Year%100!=0))|(Year%400==0)){
            return array[1];
        }
        else{
        return array[0];
        }
    }
}


以上是关于Java基础练习题8--String与StringBuffer的性能区别||日期与字符串转换||计算出生天数||计算某年的二月有几天的主要内容,如果未能解决你的问题,请参考以下文章

[LeetCode][8]String to Integer (atoi)解析与模仿Java源码实现 -Java实现

[LeetCode][8]String to Integer (atoi)解析与模仿Java源码实现 -Java实现

8.String str="i" 与 String str=new String("i")一样吗?

JAVA基础——编程练习

java 8 String.chars() 是不是适用于 8 字节字符?

java 8. String to Integer(atoi).java