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好
    }
}
原文地址:https://www.cnblogs.com/lilyo/p/12792875.html