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")一样吗?