java的常用包
1、java.lang包:java的核心类库,包含了运行java程序必不可少的系统类,如基本数据类型、基本数学函数、字符串处理、线程、异常处理类等,系统缺省加载这个包
2、java.io包:java语言的标准输入/输出类库,如基本输入/输出流、文件输入/输出、过滤输入/输出流等等
3、java.util包:包含如处理时间的date类,处理变成数组的Vector类,以及stack和HashTable类
4、java.util.zip包:实现文件压缩功能
5、java.lang.reflect包:提供用于反射对象的工具
6、java.awt.image包:处理和操纵来自于网上的图片的java工具类库
7、java.wat.peer包:很少在程序中直接用到,使得同一个java程序在不同的软硬件平台上运行
8、java.applet包
9、java.net包:实现网络功能的类库有Socket类、ServerSocket类
10、java.corba包和java.corba.orb包
11、java.awt.datatransfer包:处理数据传输的工具类,包括剪贴板,字符串发送器等
12、java.awt包:构建图形用户界面(GUI)的类库,低级绘图操作Graphics类,图形界面组件和布局管理如 Checkbox类、Container类、LayoutManger接口等,以及界面用户交互控制和事件响应,如E
13、java.awt.event包:GUI事件处理包。
14、java.sql包:实现JDBC的类库
类库
就是Java API(Application Programming Interface,应用程序接口),是系统提供的已实现的标准类的集合。在程序设计中,合理和充分利用类库提供的类和接口,不仅可以完成字符串处理、绘图、网络应用、数学计算等多方面的工作,而且可以大大提高编程效率,使程序简练、易懂。
Java类库中的类和接口大多封装在特定的包里,每个包具有自己的功能。表7.1列出了Java中一些常用的包及其简要的功能。其中,包名后面带“. *”的表示其中包括一些相关的包。有关类的介绍和使用方法,Java中提供了极其完善的技术文档。我们只需了解技术文档的格式就能方便地查阅文档。
包名
主要功能
java.applet
提供了创建applet需要的所有类
java.awt.*
提供了创建用户界面以及绘制和管理图形、图像的类
java.beans.*
提供了开发Java Beans需要的所有类
java.io
提供了通过数据流、对象序列以及文件系统实现的系统输入、输出
java.lang.*
Java编程语言的基本类库
java.math.*
提供了简明的整数算术以及十进制算术的基本函数
java.rmi
提供了与远程方法调用相关的所有类
java.net
提供了用于实现网络通讯应用的所有类
java.security.*
提供了设计网络安全方案需要的一些类
java.sql
提供了访问和处理来自于Java标准数据源数据的类
java.test
包括以一种独立于自然语言的方式处理文本、日期、数字和消息的类和接口
java.util.*
包括集合类、时间处理模式、日期时间工具等各类常用工具包
javax.accessibility
定义了用户界面组件之间相互访问的一种机制
javax.naming.*
为命名服务提供了一系列类和接口
javax.swing.*
提供了一系列轻量级的用户界面组件,是目前Java用户界面常用的包
注:在使用Java时,除了java.lang外,其他的包都需要import语句引入之后才能使用。
7.2 java.lang包中的常用类
java.lang是Java语言最广泛使用的包。它所包括的类是其他包的基础,由系统自动引入,程序中不必用import语句就可以使用其中的任何一个类。java.lang中所包含的类和接口对所有实际的Java程序都是必要的。下面我们将分别介绍几个常用的类。
7.2.1 String类和StringBuffer类
许多语言中,字符串是语言固有的基本数据类型。但在Java语言中字符串通过String类和StringBuffer类来处理。
1.String类
Java语言中的字符串属于String类。虽然有其它方法表示字符串(如字符数组),但Java使用String类作为字符串的标准格式。Java编译器把字符串转换成String对象。String对象一旦被创建了,就不能被改变。如果需要进行大量的字符串操作,应该使用StringBuffer类或者字符数组,最终结果可以被转换成String格式。
(1)创建字符串
创建字符串的方法有多种方式,通常我们用String类的构造器来建立字符串。表6.2列出了String类的构造器及其简要说明。
表7.2 String类构造器概要
构造器
说明
String( )
初始化一个新的String对象,使其包含一个空字符串
String(char[ ] value )
分配一个新的String对象,使它代表字符数组参数包含的字符序列
String(char[ ] valu, int offset,int count)
分配一个新的String对象,使它包含来自字符数组参数中子数组的字符
String(Stringvalue )
初始化一个新的String对象,使其包含和参数字符串相同的字符序列
String(StringBufferbuffer )
初始化一个新的String对象,它包含字符串缓冲区参数中的字符序列
【例7.1】使用多种方法创建一个字符串并输出字符串内容。
public class StrOutput {
public static void main(Sring[] args) {
//将字符串常量作为String对象对待,实际上是将一个String对象赋值给另一个
String s1 = "Hello,java!";
//声明一个字符串,然后为其赋值
String s2;
s2 = "Hello,java!";
//使用String类的构造器中的一个。创建一个空字符串,然后赋值给它
String s3 = new String( );
S3 = "Hello,java!";
//将字符串直接传递给String类构造器来创建新的字符串
String s4 = new String("Hello,java!");
//使用String类的构造器中的一个。
//通过创建字符数组传递给String类构造器来创建新的字符串
Char c1[ ] = { ' H', ' i', ' , ' , 'j', 'a', 'v', 'a'};
String s5 = newString(c1 );
//将字符数组子集传递给String类构造器来创建新的字符串
String s6 = new String(c1,0,2 );
System.out.println(s1);
System.out.println(s2);
System.out.println(s3);
System.out.println(s4);
System.out.println(s5);
System.out.println(s6);
}
}
运行结果:
C:/>java StrOutput
Hello,java!
Hello,java!
Hello,java!
Hello,java!
Hi,java
Hi
(2)字符串的操作
Java语言提供了多种处理字符串的方法。表6.3列出了String类常用的方法。
表7.3 String类的常用方法
方法
说明
char charAt(int index)
获取给定的Index处的字符
int compareTo(String anotherString)
按照字典的方式比较两个字符串
int compareToIgnoreCase(String str)
按照字典的方式比较两个字符串,忽略大小写
String concat(String str )
将给定的字符串连接到这个字符串的末尾
static String copyValueOf(char[ ] data)
创建一个和给定字符数组相同的String对象
static String copyValueOf(char[ ]data ,
int offset,int count)
使用偏移量,创建一个和给定字符数组相同的String对象
boolean equals(Object anObject)
将这个String对象和另一个对象String进行比较
boolean equalsIgnoreCase(Sting anotherString)
将这个String对象和另一个对象String进行比较,忽略大小写
void getChars(getChars(int strbegin,
int strend,char[ ] data,int offset)
将这个字符串的字符拷贝到目的数组
int indexOf(int char)
产生这个字符串中出现给定字符的第一个位置的索引
int indexOf(int ch,int fromIndex)
从给定的索引处开始,产生这个字符串中出现给定字符的第一个位置的索引
int indexOf(String str)
产生这个字符串中出现给定子字符的第一个位置的索引
int indexOf(String str,int fromIndex)
从给定的索引处开始,产生这个字符串中出现给定子字符的第一个位置的索引
int length( )
产生这个字符串的长度
boolean regionMatches(boolean ignoreCase,int toffset,String other,int ooffset,int len)
检查两个字符串区域是否相等,允许忽略大小写
String replace(char oldChar,char newChar)
通过将这个字符串中的odChar字符转换为newChar字符来创建一个新字符串
boolean starsWith(String prefix)
检查这个字符串是否以给定的前缀开头
boolean starsWith(String prefix,int toffset)
从给定的索引处开头,检查这个字符串是否以给定的前缀开头
String substring(int strbegin)
产生一个新字符串,它是这个字符串的子字符串
String substring(int strbegin,int strend)
产生一个新字符串,它是这个字符串的子字符串,允许指定结尾处的索引
char[ ] toCharArray( )
将这个字符串转换为新的字符数组
String toLowerCase( )
将这个String对象中的所有字符变为小写
String toString( )
返回这个对象(它已经是一个字符串)
String toUpperCase( )
将这个String对象中的所有字符变为大写
String trim( )
去掉字符串开头和结尾的空格
static String valueOf(int i)
将int参数转化为字符串返回。该方法有很多重载方法,用来将基本数据类型转化为字符串。如:static String valueOf(float f),static String valueOf(long l)等
下面结合常用的方法,介绍几种典型的字符串操作。
①字符串的比较
Java语言提供了四种字符串的比较方法,这些方法有些类似于操作符。例如,可以使用equals、equalsIgnoreCase、regionMatches和compareTo方法来实现对字符串的比较。调用形式如下:
s1.equals(s2) ----- 如果s1等于s2,返回true,否则为false。
s1. equalsIgnoreCase (s2) ----- 如果s1等于s2,返回true,否则为false,忽略大小写。
s1. regionMatches(boolean ignoreCase,int toffset,s2,int ooffset,int len ) ----- 如果s1和 s2的子串相等,返回true,否则为false。其中,ignoreCase为忽略大小写设置,true为忽略大小写,false为不忽略大小写,toffset确定s1的起始偏移量,ooffset确定s2的起始偏移量,len确定子串的长度。
s1. compareTo (s2) -----如果s1s2,则返回大于0的值
【例7.2】比较字符串。
public class StrCompare {
public static void main(Sring[] args) {
String s1="aaaa";
String s2="aaaa";
String s3="AAAA";
String s4="bcd";
if (s1.equals(s2)) {
System.out.println("s1==s2");
}
else {
System.out.println("s1!=s2");
}
if (s1.equalsIgnoreCase(s3)) {
System.out.println(" s1= =s3 when ignoring case");
}
else {
System.out.println(" s1!=s3 when ignoring case");
}
if (s1.regionMatches(true,0,s3,1,3)) {
System.out.println(" s1= =s3 when ignoring case");
}
else {
System.out.println(" s1!=s3 when ignoring case");
}
if (s1.regionMatches(false,0,s3,1,3)) {
System.out.println(" s1= =s3 when not ignoring case");
}
else {
System.out.println("s1!=s3 when not ignoring case");
}
if (s1.compareTo(s4)<0) {
System.out.println(" s1
}
else if (s1.compareTo(s4)= =0){
System.out.println("s1= =s4");
}
else{
System.out.println("s1>s4");
}
}
}
运行结果:
C:/>java StrCompare
s1= =s2
s1= =s3 when ignoring case
s1= =s3 when ignoring case
s1!= =s3 when not ignoring case
s1
②求字符串长度
使用String类的length方法,调用形式如下:
s1.length( ) ----- 返回s1的长度,其类型为int。
【例7.3】求指定字符串的长度。
public class StrLength
{public static void main(Sring[] args)
{String s1="Hello,Java!";
int i=s1.length();
System.out.println("字符串s1长度为"+i);
}
}
运行结果:
C:/>java StrLength
字符串s1长度为11
③连接字符串
可以使用两种方法将字符串连接起来:+操作符、用String类的concat方法。Concat方法的调用形式如下:
s1.concat(s2) ----- 将两个字符串连接起来。
s1.concat(“字符串常量”) ----- 将字符串和字符串常量连接起来。
【例7.4】使用+和concat方法创建同一个字符串。
public class StrConcat
{public static void main(Sring[] args)
{String s1="Hello";
String s2=s1+",";
String s3=s2.concat(" Java");!
String s4=new String(" ! ");
String s5=s4.concat(s4);
System.out.println(" 连接而成的字符串是"+s5);
}
}
运行结果:
C:/>java StrConcat
连接而成的字符串是Hello,Java!
④拷贝字符串
可以有四种方法将一个字符串复制到另一个字符数组或String对象中:copyValueOf、getChars、toCharArray、substring。调用形式:
s1.copyValueOf(data) ----- 将数组data中的内容全部拷贝到字符串中。
s1.copyValueOf(data,int offset,int count) ----- 将数组data中以offset起始,长度为count的内容拷贝到字符串中。
s1.getChars(int strbegin,int strend, data,int offset) ----- 将s1的全部或部分内容拷贝到数组data中。其中,strbegin为字符的起始,strend 为字符的终止,offset为字符数组的起始。
data=s1.toCharArray( ) ----- 将s1中的全部内容拷贝到一个字符数组data中。
s2=s1.substring(int strbegin) ----- 将s1中以stregin起始的内容拷贝到s2中。
s2=s1.substring(int strbegin,int strend) ----- 将s1中以stregin起始,以strend结束之间的内容拷贝到s2中。
【例7.5】拷贝字符串。
public class StrCopy
{public static void main(Sring[] args)
{
String s1=new String( );
char data[ ]={ 'a', 'b', 'c', 'd', 'e', 'f'};
s1=s1.copyValueOf(data);
System.out.println(" s1="+s1);
s1=s1.copyValueOf(data,2,3);
System.out.println(" s1="+s1);
s1.getChars(1,2, data,0)
System.out.println(" data="+data);
data=s1. toCharArray( );
System.out.println(" data="+data);
String s2=new String( );
String s3=new String( );
s2=s1.substring(0);
System.out.println(" s2="+s2);
s3= s1.substring(1,2);
System.out.println(" s3="+s3);
}
}
运行结果:
C:/>java StrCopy
s1=abcdef
s2=cde
data=decdef
data=cde
s2=cde
s3=de
⑤在字符串中查找字符和子串
在字符串中查找字符和子串,确定它们的位置,有几种常用的方法:charAt、indexOf、lastIndexOf。调用形式如下:
s1.chatAt(int index)--------返回s1中index所对应的字符。其中,index是下标号。
s1. indexOf (int char)--------返回s1中字符char在字符串中第一次出现的位置。
s1. lastIndexOf (int char)--------返回s1中字符char在字符串中最后一次出现的位置。
s1. indexOf (s2)--------返回s2在s1中第一次出现的位置。
s1. lastIndexOf (s2)--------返回s2在s1中最后一次出现的位置。
【例7.6】查找字符和子串。
public class StrSearch
{public static void main(Sring[] args)
{
String s1="Javav";
char c=s1.charAt(2);
System.out.println("c=",+c);
int i=s1.indexOf('a');
System.out.println("fistchar=",+i);
int j=s1.lastIndexOf('a');
System.out.println("lastchar=",+j);
i= s1.indexOf("av");
System.out.println("fiststring=",+i);
j=s1.lastIndexOf("av");
System.out.println("laststring=",+j);
}
}
运行结果:
C:/>java StrSearch