常用类库


字符串处理类

在Java中,字符串常量是一个类型为java.lang.String类的对象。通过使用String类提供的方法可以完成对字符串的各种操作。

1、String类的构造方法

String() 创建一个空字符串;如:String str1=new String();

String(char[] value) 根据字符数组创建一个新字符串;如:char[] arr={'a','b','c'};String str2=new String(arr);

String(byte[] value) 根据字节数组新建一个字符串;byte[] b={'f','g','h'};String str3=new String(b);

String(String value) 创建一个新字符串作为指定字符串的副本;如:String str4=new String(str3);

2、String类的常用方法

(1)字符串长度length()

String name="John House"; int len=name.length(); len的值为10;

(2)字符串比较

= =检查两个操作数是否指向同一对象;equals()方法检查两个操作数的内容是否相同。

例:比较两个字符串是否相等

(3)搜索和提取字符串

String substring(int beginIndex) ;返回从指定位置开始的字符串;如:"unhappy".substring(2) returns "happy"

String substring(int beginIndex, int endIndex);返回从指定位置beginIndex到endIndex之间的字符型; 如:"hamburger".substring(4, 8) returns "urge"

String trim();删除字符串前后的空格,并返回;

int indexOf(char ch); 返回字符串中第一次出现字符ch的位置

int indexOf(String value);返回字符串中第一次出现字符串value的位置

int lastIndexOf(char ch);返回字符串中最后一次出现字符ch的位置

int lastIndexOf(String value);返回字符串中最后一次出现字符串value的位置

例:提取和搜索字符串

(4)字符串的连接

String concat(String str);将指定字符串连接到此字符串的结尾。如:"cares".concat("s") returns "caress";

用“+”运算符连接。如:String str="How"+"are"+"you";


数据封装类

为了能在Java中将基本数据类型作为对象来进行处理,并能使用相关的属性和方法;Java语言在Java.lang包中为每个基本数据类型提供了一个相应的封装类。

在封装类中定义了对应基本数据类型的一些常数,还包含一个与封装类对应的基本数据类型字段;提供了了基本数据类型和字符串的相互转换方法。

如:Double类的主要属性和方法,见API

例:封装类的属性和方法


Scanner类

java.util.Scanner类用以实现接收用户从键盘输入的信息,也可从字符串和文件读取数据。Scanner类常用方法:

Scanner(InputStream source);构造一个新的 Scanner,它生成的值是从指定的输入流扫描的。

Scanner(String source);构造一个新的 Scanner,它生成的值是从指定字符串扫描的。

void close();关闭此扫描器。

boolean hasNext();如果此扫描器的输入中有另一个数据,则返回 true。

String next();查找并返回来自此扫描器的下一个完整数据。

boolean nextBoolean();扫描解释为一个布尔值的输入标记并返回该值。

byte nextByte();扫描读取下一个数据,该数据被标识为byte。

double nextDouble();扫描读取下一个数据,该数据被标识为double。

float nextFloat();扫描读取下一个数据,该数据被标识为float。

int nextInt();扫描读取下一个数据,该数据被标识为int。

Scanner useDelimiter(Pattern p);将此扫描器的分隔模式设置为指定模式。

例:根据输入的值计算总金额


日期和时间类

1、Date类

Date类提供了操作时间的基本功能。Date类的对象表示当前的日期和时间,提供了获取日期和时间各组成部分的方法。Date对象必须通过toString()方法转换为字符串后,才能准确地输出其中的值,否则输出的是一个长整型值。

Date类的两种构造方法:

Date();使用当前系统日期和时间创建对象

Date(long date);使用自1970年1月1日0时0分0秒以后的制定毫秒数创建对象

例:获取当前系统的时间,显示不同格式的月份和时间

2、Calendar类

Date类的替代者,Calendar类是一个抽象类 ,不能用new运算符实例化对象,只能通过getInstance()方法获得一个Calendar对象 。该对象能够根据特定语言和日历风格,生成日期时间格式化所需要的所有日历字段值。

getInstance();返回默认地区和时区的Calendar对象 。

add(int original,int value);将value添加到original指定的时间或日期部分。

get(int calFields);根据指定的值,返回对应的年、月、日等。

set(int which,int val);根据指定的值,设置对应的年、月、日等值。

getTime();返回一个表示当前对象时间值的Date对象。

after(Object c);判断当前对象表示的时间是否在c表示的时间之后。

before(Object c);判断当前对象表示的时间是否在c表示的时间之前。

Calendar类还定义了用于获取或设置Calendar各组成部分的int常量YEAR、MONTH、DAY、AM_PM等。

例:Calendar类的使用


数据类型的转换

一、数值型数据与字符串之间的转换

1、数值型数据转换为字符串

(1)使用封装类对应的toString()方法,如:

(2)使用String类的valueOf()方法

2、字符串转换为数值型数据

(1)使用封装类的parseXXX()方法,如:

(2)使用valueOf()方法,如:

二、日期型数据与字符串之间的转换

Java专门提供了java.text.SimpleDateFormat类实现字符串与日期型数据的相互转换。

SimpleDateFormat是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。

SimpleDateFormat类的常用方法:

SimpleDateFormat(String pattern);构造方法,用给定的模式构造该类的对象;

format(Date date);将一个Date对象格式化为日期/时间字符串;

parse(String source);从给定字符串的开始分析文本,以生成一个日期;

applyPattern(String pattern);将给定模式字符串应用于日期格式;

toPattern();返回描述此日期格式的模式字符串;

例:SimpleDateFormat类的使用


集合类

Java的集合类是一个容器,用来存放Java类的对象,代表一组对象的对象。集合中的这组对象称为集合的元素。集合中的每一个元素都是对象,任何数据类型的对象都可以存放在集合中。

集合API中的接口和类主要分布在java.util包中,最基本的接口是Collection接口,其常用方法有:

boolean add(Object e);将指定的对象添加到该集合中。

boolean contains(object o);在集合中检查是否包含指定的元素。

boolean remove(Object o);从集合中移除指定元素的单个实例。

int size();返回集合中的元素个数。

boolean isEmpty();检查集合中是否包含元素。

void clear();移除集合中的所有元素。

一、Set接口与HashSet类

Set接口继承扩展了Collection接口,但没有定义新的方法,它不允许集合中存在重复的元素。

HashSet类作为Set接口的实现类,将元素存放在散列表中。 因HashSet集合中的对象是 无序的,会导致插入对象的顺序与输出对象的顺序不一致的情况。

例:HashSet类的使用

二、List接口与ArrayList类

List继承扩展了Collection接口,同时定义了一些自己的方法:定位方法、搜索方法和ListIterator方法。List是有序集合,运行有相同元素。在进行插入操作时,用户可以控制每个元素的插入位置;用户还可以使用索引访问List中的元素。

ArrayList类是List接口的实现类,采用数字结构存放对象。

例:ArrayList类的使用

三、Map接口与HashMap类

Map接口实现了将键映射到值的机制,其中的键和值都可以是对象。Map中的键不要求有序,不允许重复。值同样不要求有序,但可以重复。

HashMap类是Map接口的实现类。由HashMap类实现的Map集合对于添加和删除映射关系更加高效。

HashMap类的常用方法:

void clear();清空集合里的所有元素

Object put(Object key,Object value);以“键-值”方式向集合中存入数据

Object get(Object key);根据键对象获得相关联的值

int size();获得集合中“键-值对”的个数

Set keySet();返回键的集合

Collection values();返回值的集合

Object remove(Object key);删除指定的键映射的“键-值对”

例:HashMap类的使用


泛型

一、泛型的概念

二、泛型类和泛型方法

如果无法确定类中某成员的类型,或者想使某个类适用于描述一类问题时,如:

三、List<E>接口和ArrayList<E>类

List<E>接口与List接口的主要区别是,List<E>接口约束了加入集合中的元素类型只能是E类型,不能包含其它类型的数据;同时从集合中获取的元素一定是E类型,不再需要进行任何的类型转换。

例:把学生信息放入到集合中,在进行排序和输出。

四、Map<K,V>接口和HashMap<K,V>类

使用HashMap<K,V>类,可以规范哈希表的使用,规定HashMap类中键和值的类型。

例:HashMap类的使用