Java.lang包
想要使用一个包里的类,必须首先使用import语句来引入改包中的类。但Java.lang包是由Java虚拟机自动引入的包,所以即使程序没有任何“import java.lang.*”语句来引入此包,它也会被自动引入。
String类和StringBUffer类
在程序设计中,字符串类型是常用的数据类型之一,如:姓名、家庭地址、国籍等,这些属性都是字符串类型。在Java中,任何字符串都是一个对象,所以String类型并不是基本数据类型。Java提供了三个用于字符串操作的类,其中二个类是最长用的:String类和StringBuffer类。String类提供了一系列操作字符串的方法,从而使字符串的生成、访问和修改等操作更简单、更规范。而StringBuffer类的对象都是可以扩充和修改的字符串变量。
String类
String类的创建语法:
//1.字符串常量方式创建字符串
String str1 = "你好,世界!";
//2.new 方式创建字符串
String str2 = new String("你好,世界!");
二种创建方式的区别:
示例:
/**
* 二种创建方式的区别:
* */
public class Demo_one {
public static void main(String[] args) {
System.out.println("字符串常量方式创建字符串");
String str1 = "你好";
String str2 = "你好";
System.out.println("==号比较:"+(str1 == str2));
System.out.println("equals()比较:"+(str1.equals(str2)));
System.out.println("new 方式创建字符串");
String str3 = new String("你好");
String str4 = new String("你好");
System.out.println("==号比较:"+(str3 == str4));
System.out.println("equals()比较:"+(str3.equals(str4)));
}
}
运行效果:
这是因为==比较的是二个引用对象是否相同,即是否指向同一个内存空间;而equals()比较字符串的时候,比较的是二个字符串的内容是否相等。
String类的常用方法
方法 | 功能描述 |
---|---|
length() | 返回此字符串的长度 |
substring(int beginIndex) | 返回一个新的字符串,它是当前字符串的子字符串 |
equals(Object anObject) | 比较二个字符串是否相等 |
endsWith(String suffix) | 测试字符串是否指定的后缀结束 |
indexOf(int ch) | 返回指定字符在字符串第一次出现的索引(索引从0开始) |
trim() | 清除字符串左右二端的空格 |
str.substring(int index1,int index2) | 截取字符串str中从index1开始到index2结束的子字符串,省略index2表示截取到字符串末尾 |
str.replace() | 方法有多个重载,用来把字符串中与参数1匹配的字符(串)替换为参数2指定的字符(串) |
compareTo() | 比较二个字符串的大小,当调用字符串对象小于参数字符串时,返回结果为-1,如果相等返回结果0 |
示例:
/**
* String类的方法
* */
public class Demo_one {
public static void main(String[] args) {
String str1 = "hello word!";
System.out.println("常量str1是:"+str1);
System.out.println("length():"+str1.length());
System.out.println("substring():"+str1.substring(2,5));
System.out.println("indexOf(int ch):"+str1.indexOf("word"));
String str2 = "abc";
String str3 = "abc";
String str4 = " hello word ";
System.out.println("调用trim()之前的字符串长度"+str4.length());
System.out.println("调用trim()之后的字符串长度"+str4.trim().length());
System.out.println("str2.compareTo(str3):"+str2.compareTo(str3));
}
}
运行效果:
StringBuffer类
String的实例为不可变得对象,一旦被创建就不能修改它得值,对于已经存在得String对象得修改都是重新创建一个新的对象。StringBuffer得实例对象是可变对象,与String不同,对StringBuffer进行修改时不会重新创建对象。
StringBuffer类得构造方法
StringBuffer类和普通类一样,只能通过构造方式来创建字符串对象。常用得构造方法如下表:
语法 | 说明 |
---|---|
StringBuffer | 创建一个空的可变字符串 |
StringBuffer(String str) | 创建一个可变字符串,初始化为str |
语法:
//创建一个空的字符串,默认长度为16
StringBuffer str1 = new StringBuffer();
//初始化为“hello word”
StringBuffer str2 = new StringBuffer("hello word");
StringBuffer类得常用方法
方法 | 功能描述 |
---|---|
append(String str) | 将指定得字符串追加到此字符串列 |
insert(int offset,String str) | 将字符串插入此字符串序列中 |
reverse() | 将此字符序列用其反转序列代替 |
示例:
/**
* StringBuffer类的方法
* */
public class Demo_one {
public static void main(String[] args) {
StringBuffer str1 =new StringBuffer("hello word!");
System.out.println("StringBuffer的str1值时:"+str1);
System.out.println("append()追加:你好结果是:"+str1.append("你好"));
str1.insert(11,"世界,");
System.out.println("insert追加后的结果是:"+str1);
str1.reverse();
System.out.println("字符串反转结果是:"+str1);
}
}
运行效果:
String和StringBuffer的区别:
String类与StringBuffer类的区别在于:String的长度不可变,StringBuffer的长度可变。当String类型的内容被修改(如调用concat()方法)时,将产生一个新的String对象。如果需要将StringBuffer类型的字符串转换为String类型,可以调用StringBuffer的toString()方法。
java.util包
与java.lang包相同,java.util包也是SUN公司提供的。该包提供各种日期格式、数据格式转换的类等。
Date类的使用
Java在Date类中封装了有关日期和时间的信息,用户可以通过调用相应的方法来获取系统时间或者设置日期和时间。其全称是java.util.Date类,需要注意的是,Date类的大部分方法已过时,一般表示时间,都需要配合Calendar类使用。
SimpleDateFormat类的使用——格式化日期
SimpleDateFormat类的全称是:java.text.SimpleDateFormat,用于对日期型和特殊式的日期字符串之间进行转换。SimpleDateFormat类主要使用parse方法和format方法来实现字符串和Date类型数据的相互转换。
示例:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* 日期格式
* */
public class Demo_one {
public static void main(String[] args) throws ParseException {
Date date = new Date();
//其中:hh是12小时制,kk是24小时制,a表示是上午还是下午
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss a");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MM/dd kk:mm:ss a");
System.out.println("系统当前时间是:"+sdf1.format(date));
System.out.println("系统当前时间是:"+sdf2.format(date));
//将字符串转换成日期类型
SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd");
Date date1 = sdf3.parse("2020-01-01");
Date date2 = sdf3.parse("1997-03-14");
System.out.println(date1);
System.out.println(date2);
}
}
运行效果:
我们在 public static void main(String[] args) {}main方法中后使用了语句throws ParseException声明了此处main方法将会抛出一个ParseException类型的异常。当我们在程序中使用了SimpleDateFormat的parse()方法后,就一定要抛出或者捕获ParseException类型的异常。