zoukankan      html  css  js  c++  java
  • work11

    1,简述String类中的equals方法与Object类中的equals方法的不同点。

    /*
    Object 类
    1,它是所有类的一个根类
    2,其他类默认继承Object类
    常用方法:
    1,toString();
    在实际的开发中,我们一般来重写 toString(),之后用来显示属性的值
    2,equals()
    默认比较的是地址
    在实际的开发中,我们一般来重写 equals,之后用来比较对象的内容是否相等
    1,包路径 2,创建对象
    */


    2,编写程序,(Scanner)当以年-月-日的格式输入一个日期时,输出其该年是否为闰年,该月有几天,该日是星期几;

    package com.hp.Test10;
    
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Scanner;
    
    public class Dome04 {
            public static void main(String[] args) throws ParseException {
                System.out.println("请输入第一个日期(yyyy-mm-dd)");
                Scanner c =new Scanner(System.in);
                String str=c.nextLine();
                System.out.println("请输入第二个日期(yyyy-mm-dd)");
                String str1=c.nextLine();
                //把字符串类型解析为Date类型
                SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
                Date d= sd.parse(str);
                Date d1=sd.parse(str1);
                long l =0;
                if(d.after(d1)){
                    l =d.getTime()-d1.getTime();
                }else{
                    l=d1.getTime()-d.getTime();
                }
                long a = 1000*60*60*24;//一天的时间
                long day = l/a;
                long week = day/7;
    
    
                System.out.println("两个日期相隔"+day+"天");
                System.out.println("相隔"+week+"周");
            }
    }


    3,计算某年、某月、某日和某年、某月、某日之间的天数间隔和周数。

    package com.hp.Test10;
    
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.GregorianCalendar;
    import java.util.Scanner;
    
    public class Dome03 {
        public static void main(String[] args) {
    //        Scanner sc=new Scanner(System.in);
    //        System.out.println("请输入日期:");
    //        String str = sc.next();
    //        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
    //        Date date=null;
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入日期:");
            String str = sc.nextLine();
    
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            Date date = null;
            try {
                date = sdf.parse(str);
            } catch (ParseException e) {
                e.printStackTrace();
            }
    
            //把Date类型转为Calendar类型
            Calendar c = Calendar.getInstance();
            c.setTime(date);
    
            //提取年月日
            int year = c.get(Calendar.YEAR);
    
            GregorianCalendar gc = new GregorianCalendar();
            if(gc.isLeapYear(year)){
                System.out.println(year+"是闰年");
            }else{
                System.out.println(year+"不是闰年");
            }
    
            //获得月字段天数的最大值
            int day = c.getActualMaximum(Calendar.DAY_OF_MONTH);
            System.out.println("该月有"+day+"天");
    
            //获得周几
            int i = c.get(Calendar.DAY_OF_WEEK) - 1;
    
            String week = "";
            try {
                week = pipei(i);
            } catch (Exception e) {
                e.printStackTrace();
            }
    
            System.out.println("今天是周"+week);
    
        }
    
        public static String pipei(int i) throws Exception {
            String s = "";
            switch (i) {
                case 0:
                    s = "日";
                    break;
                case 1:
                    s = "一";
                    break;
                case 2:
                    s = "二";
                    break;
                case 3:
                    s = "三";
                    break;
                case 4:
                    s = "四";
                    break;
                case 5:
                    s = "五";
                    break;
                case 6:
                    s = "六";
                    break;
                default:
                
            }
            return s;
        }
    
    
        }


    4,简述StringBuilder类与string类的区别

    String 对象是不可改变的。每次使用 System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。
    
    StringBuilder 对象是动态对象,允许扩充它所封装的字符串中字符的数量,但是您可以为它可容纳的最大字符数指定一个值,当修改 StringBuilder 时,在达到容量之前,它不会为其自己重新分配空间。当达到容量时,将自动分配新的空间且容量翻倍。可以使用重载的构造函数之一来指定 StringBuilder 类的容量。
    
    总结后大概为这3点:
    
    string 对象是恒定不变的,stringBuider对象表示的字符串是可变的。stringBuilder是.net提供的动态创建string的高效方式,以克服string对象恒定性带来的性能影响。
    
    对于简单的字符串连接操作,在性能上stringBuilder并不一定总是优于string。因为stringBuider对象创建代价较大,在字符串目标连接较少的情况下,过度滥用stringBuilder会导致性能的浪费,只有大量的或者无法预知次数的字符串操作,才考虑stringBuilder来实现。

    当修改字符串信息时,此时不许创建对象,可以使用stringBuilder对象。
    5,计算自己出生了多少天?

           String str= "1999-7-23 00-00-00";
            SimpleDateFormat time = new SimpleDateFormat("yyyy-MM-dd");
    //把字符串转换成日期
            Date d = time.parse(str);
    
    //通过该日期得到毫秒值
            long mytime = d.getTime();
    //获取当前时间的毫秒值
            long newtime = System.currentTimeMillis();
    //用当前时间减去出生时间
            long datetime = newtime-mytime;
    //转换为天数
            long day = datetime/1000/60/60/24;
    //输出
            System.out.print(day);
        }


    6,求一个for循环 执行时间?

           String str= "1999-7-23 00-00-00";
            SimpleDateFormat time = new SimpleDateFormat("yyyy-MM-dd");
    //把字符串转换成日期
            Date d = time.parse(str);
    
    //通过该日期得到毫秒值
            long mytime = d.getTime();
    //获取当前时间的毫秒值
            long newtime = System.currentTimeMillis();
    //用当前时间减去出生时间
            long datetime = newtime-mytime;
    //转换为天数
            long day = datetime/1000/60/60/24;
    //输出
            System.out.print(day);
        }
  • 相关阅读:
    CSU 1333 Funny Car Racing
    FZU 2195 检查站点
    FZU 2193 So Hard
    ZOJ 1655 FZU 1125 Transport Goods
    zoj 2750 Idiomatic Phrases Game
    hdu 1874 畅通工程续
    hdu 2489 Minimal Ratio Tree
    hdu 3398 String
    洛谷 P2158 [SDOI2008]仪仗队 解题报告
    POJ 1958 Strange Towers of Hanoi 解题报告
  • 原文地址:https://www.cnblogs.com/lemperor/p/13883744.html
Copyright © 2011-2022 走看看