zoukankan      html  css  js  c++  java
  • Java-常用类(时间类、String等)

    时间类
    1、Date:java最常用的一个时间工具类
    构造方法:Date():当前系统的时间
    2、SimpleDateFormat:美化时间格式
    构造方法:SimpleDateFormat(格式)
    格式:yyyy-MM-dd 年月日
          yyyy-MM-dd HH:mm:ss 年月日时分秒
    方法:format(date)-->标准的时间格式

    import java.text.SimpleDateFormat;
    import java.util.Date;
    public class Test1 {
        public static void main(String[] args) {
            Date date1=new Date();
            System.out.println("当前系统的时间是:"+date1);
            SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            //向控制台输出的时间,一定要转化为对应的String
            String message=dateFormat.format(date1);
            System.out.println("修改后当前时间:"+message);
        }
    }
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.GregorianCalendar;
    public class Test1 {
    //当前系统时间:Date
    //某个具体的时间:GregorianCalendar(年,月-1,日,小时,分钟,秒)
    //显示时间:最后一定要转化为Date,最后利用SimpleDateFormat输出想要时间及表示时间的格式
        public static void main(String[] args) {
    //Calendar:    抽象类,    设定很多针对时间的操作的方法
    //GregorianCalendar:Calendar子类,实现Calendar中所有的抽象的方法,自由去设置一个时间
            Calendar c1=new GregorianCalendar(2020,3,13,13,51,40);//西方的月份+1=东方的月份,西方的月份:0,1,2,...11
            Date date=c1.getTime();//getTime():把GregorianCalendar类对象,转化Date对象
            SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String message=sdf.format(date);
            System.out.println(message);
        }
    }

    String
    sun公司针对字符串的操作单独设计的一个工具类,使用极其广泛。原则:String内容一旦发生改变,内部就会创建一个新的String对象

    public class Test1 {
    //String:常用的方法
        public static void main(String[] args) {
            String str="helloworld";
    //                    0123456789    
            //String内部结构就是char[],String中有下标,可以通过下标找到对应的字符
            char c1=str.charAt(5);//charAt(index):获得指定下标的字符
            System.out.println(c1);//结果:w
            int index1=str.indexOf('l');//indexOf(char):根据给定字符,获得该字符在当前String第1次出现的位置的下标
            System.out.println(index1);//结果:2
            int indexOW=str.indexOf("ow");//indexOf(String):根据给定字符串,获得该字符串第1次出现的位置的下标
            System.out.println(indexOW);//结果:4
            int index2=str.lastIndexOf('o');//lastIndexOf(char):找到该字符最后出现的位置的坐标
            System.out.println(index2);//结果:6
            int indexOR=str.lastIndexOf("or");//lastIndexOf(String):找到该字符最后一次出现位置的坐标
            System.out.println(indexOR);//结果:6
        }
    }
    public class Test1 {
        public static void main(String[] args) {
            String str="liushishi";
            String str1=str.substring(3);//substring(n):截取从n开始到最后所有的字符串,组成一个新的字符串
            System.out.println(str1);//结果:shishi
            String str2=str.substring(3, 6);//substring(m,n):截取下标从m开始到n之间所有的字符,组成一个新的字符串,从m开始到n-1
            System.out.println(str2);//结果:shi
            String str4="hello.txt";
            if(str4.endsWith(".txt")){//endsWhth(String):判断该字符串是否以String结尾,如果是,返回值是true,反之,false
                System.out.println("是文本文件");//结果:是文本文件
            }else{
                System.out.println("不是文本文件");
            }
            System.out.println(str4.startsWith("he"));//startWith(String):判断该字符串是否以String开头。结果:true
            //分隔字符串:把一个字符串拆分成多个字符串,返回结果是字符串数组
            //split("拆分标志"):通过拆分标志来拆分当前的字符串,返回一个字符串的数组
            String str5="1:Tom:25";
            String[] strs=str5.split(":");
            for(String s:strs){
                System.out.println(s);//结果:1 Tom 25
            }
            //length():返回该字符串长度(字符的个数)
            String str6="123456789";
            System.out.println(str6.length());//结果:9
            String str7="  ";
            System.out.println(str7.length());//结果:2
            String str8="";
            System.out.println(str8.length());//结果:0
    //        String str9=null;
    //        System.out.println(str9.length());--报错
    //抛出NullPointerException:str9根本不存在,不可能调用length()方法,抛出空指针异常
            //比较两个字符串是否相等:字符串里面的内容是否一致
            //equals:比较字符串里的内容一致,区分大小写
            String str10="hello";
            String str11="Hello";
            System.out.println(str10.equals(str11));//结果:false
            //equalsIgnoreCase():比较两个字符串是否相等,忽略大小写
            System.out.println("不区分大小写:"+str10.equalsIgnoreCase(str11));//结果:不区分大小写:true
            //trim():去掉首尾的空格
            String str12="  a b c  ";
            System.out.println("去掉str12首尾空格:"+str12.trim());//结果:去掉str12首尾空格:a b c
            String str13="sfsAdssBQWE";
            //toUpperCase():把所有的字符全部改为大写
            System.out.println("把str13中所有字符全部变成大写:"+str13.toUpperCase());//结果:把str13中所有字符全部变成大写:SFSADSSBQWE
            //toLowerCase():把所有的字符全部改为小写
            System.out.println("把str13中所有字符全部改为小写"+str13.toLowerCase());//结果:把str13中所有字符全部改为小写sfsadssbqwe
        }
    }

    可以变长的字符串
    StringBuffer,StringBuilder
    1、String缺点:字符串的内容有任何的改变,都会创建一个新的String对象,过于频繁修改字符串,会让系统String对象过多,压力过大
    2、StringBuffer:线程安全,出现较早,适合大型的多线程项目。优点:稳定 缺点:速度较慢
    StringBuilder:线程不安全,出现较晚,适合单线程下使用。优点:速度快 缺点:不稳定
    3、append方法:用来拼接字符串,StringBuffer和StringBuilder这两个类都有append方法,无论如何修改,内部永远是一个String对象,不会创建新的String对象

    public class Test1 {
        //StringBuffer和StringBuilder:都是可变长的字符串,而且两个类方法基本一致
        public static void main(String[] args) {
            StringBuffer str=new StringBuffer("今天希望");
    //                                           0 1 2 3
            str.append("能早点放学!");//append(String):往上追加String
            str.append("可惜晚上开会。");
            str.insert(2,"迫切");//insert(index,newString):在StringBuffer的下标位置index追加newString
            str.delete(0, 2);//delete(start,end):删除一段内容(从end-start)之间所有的内容
            str.deleteCharAt(str.length()-1);//deleteCharAt(index):根据下标index删除对应的字符
            //toString():把StringBuffer转化为String字符串
            System.out.println(str.toString());//结果:迫切希望能早点放学!可惜晚上开会
            //append(obj):append可以追加任何的数据类型
            StringBuilder str1=new StringBuilder("今天");
            str1.append(12);
            str1.append(",");
            str1.append(12.1f);
            str1.append(true);
            str1.append('好');
            System.out.println(str1.toString());//结果:今天12,12.1true好
        }
    }

  • 相关阅读:
    POJ 2251 Dungeon Master
    HDU 3085 Nightmare Ⅱ
    CodeForces 1060 B Maximum Sum of Digits
    HDU 1166 敌兵布阵(树状数组)
    HDOJ 2050 折线分割平面
    HDU 5879 Cure
    HDU 1878 欧拉回路
    HDU 6225 Little Boxes
    ZOJ 2971 Give Me the Number
    HDU 2680 Choose the best route
  • 原文地址:https://www.cnblogs.com/peiya/p/12694101.html
Copyright © 2011-2022 走看看