6.1.1 String类的初始化
在操作String类之前,首先需要对String类进行初始化,在Java中可以通过以下两种方式对String类进行初始化,具体如下。
-
使用字符串常量直接初始化一个String对象。
String str1="abc";
-
使用String的构造方法初始化字符串对象,String类的构造方法如下:
String类的构造方法
String();//创建一个内容为空的字符串
String(char[]value);//根据指定的字符数组创建对象
String(String value);//根据指定的字符串内容创建对象
6.1.2 String类的常见操作
String类常用的一些方法,lompareto 按字典顺序比较字符串大小
String类常用方法(任何字符串空串都可输出)
Int length():返回此字符串的长度
Boolean equals(object anobject):将此字符串与指定的字符串比较
Boolean startsWith(string perfix):判断此字符串是否以指定的字符串开始/结束
Boolean contains(charsequence cs):判断此字符串中是否包含指定的字符序列
-
字符串的转换操作
使用String类的toCharArray()方法将一个字符串转为一个字符数组,静态方法valueOf将一个int类型的整数转为字符串,toUppercase()方法将字符串中的字符都转为大写。 -
字符串的替换和去除空格操作
程序开发中,用户输入数据时经常会有一些错误和空格,这时可以使用String类的replace()和trim()方法,进行字符串的替换和去除空格操作。 -
字符串的判断操作
Equals()方法用于比较两个字符串中的字符是否相等,==方法用于比较两个字符串对象的地址是否相同。 -
字符串的截取和分割
在String类中针对字符串的截取和分割操作提供两个方法,其中,subString()方法用于截取字符串的一部分,split()方法可以将字符串按照某个字符进行分割。
6.1.3 StringBuffer类
由于字符串是常量,因此一旦创建,其内容和长度是不可改变的。如果需要对一个字符串进行修改,则只能创建新的字符串。为了便于对字符串的修改,在JDK中提供了一个StringBuffer类(也称字符串缓冲区)。StringBuffer类和String类最大的区别在于它的内容和长度都是可以改变的。StringBuffer类似一个字符容器,当在其中添加或删除字符时,并不会产生新的StringBuffer对象。
StringBuffer类常用方法
StringBuffer
append(char c):添加参数到StringBuffer对象中
StringBuffer
insret(int offset,String str):将字符串中的offset位置插入字符串str
StringBuffer
deleteCharAt(int index):移除此序列指定位置的字符
StringBuffer
reverse():将此字符序列用其反转形式取代
StringBuffer类和String类有很多相似之处,初学者在使用时很容易混淆,接下来是针对这两个类进行对比,简单归纳一下两者的不同,具体如下:
-
String类表示的字符串是常量,一旦创建后,内容和长度都是无法改变的。而StringBuffer表示字符容器,其内容和长度都可以随时修改。在操作字符串时,如果该字符串仅用于表示数据类型,则使用String类即可,但是如果需要对字符串中的字符进行增删操作,则使用StringBuffer类
-
String类覆盖了Object类的equals()方法,而StringBuffer类没有覆盖Object类的equals()方法。
-
String类对象可以用操作符+进行连接,而StringBuffer类对象之间不能。
6.2.1 System类
System类定义了一些与系统相关的属性和方法,它所提供的属性和方法都是静态的,因此,想要引用这些属性和方法,直接使system类调用即可。
System类的常用方法
Static void
exit(int status):该方法用于终止当前正在运行的Java虚拟机,其中参数status表示状态码,若状态码非0,则表示异常终止
Static long ge():运行垃圾回收器,并对垃圾进行回收
Static long
current TimeMillis():返回以毫秒为单位的当前时间
Static void
arraycopy(Object src,int srcPos,Object dest,int destPos,int length):从src引用的指定源数组复制到dest引用的数组,复制从指定的位置开始,到目标数组的指定位置结束。
Static Properties
getProperties():取得当前的系统属性
Static String getProperty(String key):获取指定键描述的系统属性
-
getProperties()方法
System类的getProperties()方法用于获取当前系统的全部属性,该方法会返回一个propertirs对象,其中封装了系统的所有属性,这些属性是以键值对的形式存在。 -
current TimeMillis()
current TimeMillis()方法返回一个long类型的值,该值表示当前时间与1970年1月1日0点0分0秒之间的时间差,单位是毫秒,习惯性地被称作时间戳。 -
arraycopy(Objectsrc,int srcPos,Object dest,int destPos,int length)
arraycopy()方法用于将一个数组中的元素快速拷贝到另一个数组。其中的参数具体作用如下:
src:表示源数组。
Dest:表示目标数组。
Srcpos:表示源数组中拷贝元素的起始位置。
Destpos:表示拷贝到目标数组的起始位置。
Length:表示拷贝元素的个数。
需要注意的是,在进行数组复制时,目标数组必须有足够的空间来存放拷贝的元素,否则会发生角标越界异常。
System类还有两个常见的方法,分别是gc()和exit(int
status)方法。其中gc()方法用来启动Java的垃圾回收器,并且对内存中的垃圾对像进行回收。Exit(int status)方法用来终止当前正在运行的java虚拟机,其中参数status用于表示当前发生的异常状态,通常指定为0,表示正常退出,否则表示异常终止。
6.2.2 Runtime类
Runtime类用于表示虚拟机运行时的状态,它用于封装JVM虚拟机进程,每次使用java命令启动虚拟机都对应一个Runtime实例,并且只有一个实例,因此该类采用单列模式进行设计,对象不可以直接实例化。若想在程序中获得一个Runtime实例,只能通过以下方式:
Runtime run=Runtime.getRuntime();
由于Runtime类封装了虚拟机进程,因此,在程序中通常会通过该类的实例对象来获取当前虚拟机的相关信息。
Runtime类提供了一个exce()方法,该方法用于执行一个dos命令,从而实现和在命令行窗口中输入dos命令同样的效果。
6.3.1math类
Math类是数学操作类,提供了一系列用于数学运算的静态方法,包括求绝对值,三角函数等。Math类中有两个静态常量PI和E,分别代表数学常量Π和e。
6.3.2 Random类
在JDK的java、util包中有一个Random类,它可以在指定的取值范围内随机产生数字。在Random类中提供了两个构造方法,
Random的构造方法
Random();//构造方法,用于创建一个伪随机数生成器
Random(long seed):构造方法,使用一个long型的seed种子创建伪随机生成器
6.4包装类
通过这些包装类可以将基本数据类型的值包装为引用数据类型的对象。
类的常用方法
方法声明 功能描述
ToBinaryString(int i) 以二进制无符号整数形式返回一个整数参数的字符串
toHexString(int i) 以十六进制无符号整数形式返回一个整数参数的字符串
toOctaIString(int i) 以八进制无符号整数形式返回一个整数参数的字符串
valueOf(int i) 返回一个表示指定的int值的Integer实例
valueOf(String s) 返回保存指定的String值的Integer对象
parseInt(String s) 将字符串参数作为有符号的十进制整数进行解析
intValue() 将Integer类型的值以int类型返回
注意:
-
包装类都重写了Object类中的toString()方法,以字符串的形式返回被包装的基本数据类型的值。
-
除了 Character外,包装类都有valueOf(String s)方法,可以根据String类型的参数创建包装类对象,但参数字符串s不能为null,而且字符串必须是可以解析为相应基本类型的数据,否则虽然编译通过,但运行时会报错。
-
除了Character外,包装类都有parseXXX(String s)的静态方法,将字符串转换为对应的基本类型的数据。参数s不能为null,而且同样必须是可以解析为相应基本类型的数据,否则虽然编译通过,但运行时会报错。
6.5 Date类、Calendar类与DateFormat类
6.5.1 Date类
在JDK的java.util包中提供了一个Date类用于表示日期和时间。
6.5.2 Calendar类
Calenda类用于完成日期和时间字段的操作,它可以通过特定的方法设置和读取日期的特定部分,比如年、月、日、时、分和秒等。
Calenda的常用方法
Int get(int field):返回指定日历字段的值
Void add(int field,int amount):根据日历规则,为指定的日历字段增加或减去指定的时间量
Void set(int field,int value):为指定日历字段设置指定值
Void set(int year,int month,int date):设置Calendar对象的年、月、日三个字段的值
Void set(int year,int month,int date,int hourOfDay,int minute,int second):设置Calendar对象的年、月、日、时、分、秒六个字段的量
6.5.3 DateFormat类
如果要将Date对象表示的日期以指定的格式输出,列如输出中文格式的时间,就需要用到DateFormat类。DateFormat类专门用于将日期格式化为字符串或者用特定格式显示的日期字符串转换为一个Date对象。DateFormat是抽象类,不能被直接实例化。但它提供了静态方法,通过这些方法可以获取DateFormat类的实例对象,并调用其他相应的方法进行操作,DateFormat的常用方法
Static DateFormat getDateInstance():用于撞见默认语言环境和格式化风格的日期格式器
Static DateFormat getDateInstance(int style):用于创建默认语言环境和指定格式化风格的日期格式器
Static DateFormat
getDateTimeInstance():用于创建默认语言环境和格式化风格的日期/时间格式器
Static DateFormat getDateTimeInstance(int dateStyle,int timeStyle):用于创建默认语言环境和指定格式化风格的日期/时间格式器
String format(Date date):将一个Date格式化为日期/时间字符串
Date parse(String source):将给定字符串解析成一个日期
6.5.4 SimpleDateFormal类
在使用DateFormal对象将字符串解析为日期时,需要输入固定格式的字符串,这显然不够灵活。SimpleDateFormal类可以使用new关键字创建实例对象,他的构造方法接收一个格式字符串参数,表示日期格式模板