时间类
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好 } }