版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第七章 工具类及常用算法2主要内容Java语言根底类字符串集合类向量、堆栈、链表与队列排序与查找3Java的常用类库包Java语言的核心类库包Java语言的标准输入/输出类库包包括Java语言中的一些低级的实用工具包Java语言用来构建图形用户界面(GUI)的类库包用来实现运行于Internet浏览器中的Java Applet工具类库包Java语言用来实现网络功能的类库其他包包括, , , 等Java语言根底类4JDK API文档JDK API文档可以从网站下载,安装后,翻开即可 Java语言根底类5Object类其他所有的类都直接或间接地为它的子类定义对象最根本状态和行为protected
2、Object clone( ):生成当前对象的一个拷贝,并返回这个复制对象public boolean equals(Object obj):比较两个对象是否相同,是那么返回truepublic final Class getClass( ):获取当前对象所属的类信息,返回Class对象protected void finalize( ): 回收对象所需完成的清理工作public String toString( ): 返回当前对象本身的有关信息,按字符串对象返回public final void notify():唤醒线程public final void notifyAll():唤醒所有等
3、待此进程的线程public final void wait() throws InterruptedException:等待线程Java语言根底类6Object类equals()用来比较两个对象是否相同如果相同,那么返回true,否那么返回false比较的是两个对象状态和功能上的相同,而不是引用上的相同Integer one = new Integer (1);Integer anotherOne = new Integer (1);if ( (anotherOne) (“objects are equal);例中,equals( )方法返回true,因为对象one和anotherOne 包含
4、相同的整数值1 Java语言根底类7Object类方法equals()与运算符=的区别equals()方法比较两个对象是否相同如果没有一个类覆盖equals()方法,那么它的“相等意味着两个引用相等,即它们引用的同一个对象此时equals()方法结果与相等运算符=结果相同=可用于根本数据类型判断数据是否相等,也可用于引用类型,表示是否引用同一个对象判断句柄是否相等判断两个字符串是否相等,实际上是判断内容是否相等,此时应该用equals方法,而不是= =Java语言根底类8Object类public class TestEqualsString public static void main(S
5、tring args) String name1 = new String(LiMing); String name2 = new String(LiMing); ( name1=name2 ); /两个对象的引用,不相等 ( name1.equals(name2) ); / 内容,相等 String name3 = LiMing; String name4 = LiMing; ( name3=name4 ); /相同常量的引用,相等 ( name3.equals(name4) ); / 内容,相等Java语言根底类9Object类class MyDate int day,month,year
6、; public MyDate(int i,int j,int k) day = i; month = j; year = k; class MyOkDate extends MyDate public MyOkDate(int i,int j,int k ) super(i,j,k); public boolean equals( Object obj ) if( obj instanceof MyOkDate ) MyOkDate m = (MyOkDate)obj; =day & =month & =year ) return true; return false; Java语言根底类1
7、0Object类public class TestEqualsObjectpublic static void main(String args) MyDate m1 = new MyDate(24, 3, 2001); MyDate m2 = new MyDate(24, 3, 2001); /由于MyDate未覆盖equals(),因此比较引用,故不相等,显示false ( m1.equals(m2) ); m1 = new MyOkDate( 24, 3, 2001 ); m2 = new MyOkDate( 24, 3, 2001 ); ( m1.equals(m2) ); /相等,显
8、示true Java语言根底类11Object类getClass ( )该方法是final方法,它不能被重载它返回一个对象在运行时所对应的类的表示,从而可以得到相应的信息下面的方法得到并显示对象的类名void PrintClassName( Object obj ) (“ The objects class is “ + ( ).getName( ) );可以用getClass创立一个类的实例,而不必在编译时即知道到底是哪个类下例创立了一个与对象obj具有相同类型的一个新的实例,所创立的对象可以是任何类Object creatNewInstanceOf (object obj) return
9、( ).newInstance( );Java语言根底类12Object类toString( )该方法返回对象的字符串表示,可以用来显示一个对象,例如 ( ().toString();可以显示当前的线程通过重载toString ( )方法可以适当地显示对象的信息以进行调试Java语言根底类13Class类public static native Class forName(String className)获取指定类的引用,必要时装入此类 public native ClassLoader getClassLoader()返回装入本类的ClassLoader的引用 public native
10、Class getInterface()返回本类实现的接口 public native String getName()返回类名 public native Class getSuperclass()返回超类的引用 public native boolean isInterface()如果是接口返回真 public native Object newInstance()创立本类的一个新对象 public String toString()返回类名哈希码Java语言根底类14根本数据类型的包装类为与面向对象的环境一致,Java中提供了根本数据类型的包装类wrapper它们是这些根本类型的面向对象
11、的代表数据类型类基本数据类型BooleanbooleanCharactercharDoubledoubleFloatfloatIntegerintLonglongJava语言根底类15根本数据类型的包装类这些根本数据类型类有以下共同特点这些类都提供了一些常数,以方便使用,如Integer.MAX_VALUE, (非数字),Double. POSITIVE_INFINITY正无穷等提供valueOf(String),toString(),用于从字符串转换及或转换成字符串通过xxxxValue()方法可以得到所包装的值Integer对象的intValue()方法对象中所包装的值是不可改变的immu
12、table要改变对象中的值只有重新生成新的对象覆盖了toString(), equals()等方法除以上特点外,有的类还提供了一些实用的方法以方便操作,例如Double类就提供了更多的方法来与字符串进行转换Java语言根底类16根本数据类型的包装类Integer类MAX-VALUE域和MIN-VALUE域分别规定int类型量的最大值和最小值public Integer( int value )和public Integer( String s)分别利用一个根本数据类型int的量和一个字符串对象来生成一个Integer对象数据类型转换方法分别将当前对象所对应的int量转换成其他根本数据类型的量,
13、并返回转换后的值public double doubleValue( )public int intValue( )public long longValue( )Java语言根底类17根本数据类型的包装类Integer类字符串与int量相互转化的方法public String toString( )方法将当前Integer对象对应的int量转化成字符串public static int parseInt(String s)方法是类的方法,它无须创立Integer对象,就可以方便地将字符串转化成int量如下面的语句把字符串“123转化成整数123并赋给变量iint i = Integer.pa
14、rseInt(123); public static Integer valueOf(String s)方法也是类的方法,它将一个字符串转化成一个Integer对象,这个对象对应的int数值与字符串表示的数值一致,如Java语言根底类18根本数据类型的包装类Integer类字符串与int量相互转化的方法续下面的语句先使用valueOf( )方法将字符串转化成Integer对象,再调用这个对象的intValue( )方法返回其对应的int数值其实际作用与上一个语句完全相同,但是在处理过程中会生成一个临时的Integer对象 int i = Integer.valueOf(123).intValu
15、e( );对有些数据类型,如double和float,由于没有parseInt( )这样的方法,所以只能使用类似的步骤用valueOf( )方法将字符串转化成数值数据例如,下面的语句将“12.3转化成浮点数12.3float f = Float.valueOf(12.3).floatValue( ); Java语言根底类19根本数据类型的包装类举例/double转成string的几种方法;s = + d;s = ( d );s = new Double(d).toString();s = ( d );/ String转成double的几种方法s = 3.14159;tryd = ( s );d
16、 = new Double(s).doubleValue();d = ( s ).doubleValue();catch(NumberFormatException e )();Java语言根底类20Math类Math类用来完成一些常用的数学运算,它提供了假设干实现不同标准数学函数的方法这些方法都是static的类方法,所以在使用时不需要创立Math类的对象,而直接用类名做前缀,就可以很方便地调用这些方法例如,下面的语句就是求两个整数的最大值 int i = 9, j = 7, k ; k = Math . max( i, j ) ;而下面的程序片断将求出110之间的一个随机数 int i =
17、 ( ) * 10)+1; Java语言根底类21Math类常用方法public final static double E; / 数学常量epublic final static double PI; / 圆周率常量public static double abs(double a); / 绝对值public static double acos(double a); / 反余弦public static double exp(double a); / e的参数次幂public static double floor(double a); / 不大于参数的最大整数public static
18、double IEEEremainder(double f1, double f2);/求余public static double log(double a); / 自然对数public static double max(double a, double b); / 最大值public static float min(float a, float b); / 最小值public static double pow(double a, double b); / 乘方public static double random( ); / 产生0和1之间的伪随机数public static dou
19、ble rint(double a); / 四舍五入public static double sqrt(double a); / 平方根Java语言根底类22Math类举例public class TestMath public static void main (String args) System.out.println(Math.floor(3.1415)= + Math.floor(3.1415);System.out.println(Math.round(987.654)= + Math.round(987.654);System.out.println(Math.max(-987
20、.654,301)= + Math.max(-987.654,301);System.out.println(Math.min(-987.654,301)= + Math.min(-987.654,301);System.out.println(Math.sqrt(-4.01)= + new (-4.01).isNaN();= + );= + ); Java语言根底类23BigInteger类提供任意精度的整数运算常用构造方法:public BigInteger(String val)字符串参数val中如果含有非数字字母就会发生NumberFormatException异常常用方法 publi
21、c BigInteger add(BigInteger val)返回当前大整数对象与参数指定的大整数对象的和 public BigInteger subtract(BigInteger val)返回当前大整数对象与参数指定的大整数对象的差 public BigInteger multiply(BigInteger val)返回当前大整数对象与参数指定的大整数对象的积 public BigInteger divide(BigInteger val)返回当前大整数对象与参数指定的大整数对象的商Java语言根底类24System类System是一个功能强大、非常有用的特殊的类提供标准输入/输出、运行
22、时的系统信息等重要工具这个类不能实例化,即不能创立System类的对象它所有的属性和方法都是static的,引用时以System为前缀即可Java语言根底类25System类用System类获取标准输入/输出System类的属性有三个,分别是系统的标准输入、标准输出和标准错误输出public static PrintStream err ;public static InputStream in ;public static PrintStream out ;通过使用这三个属性,Java程序就可以从标准输入读入数据并向标准输出写出数据char c = ( ) ; / 从标准输入读入一个字节的信
23、息并返回给一个字符变量 ( Hello! Guys,) ; / 向标准输出输出字符串通常情况下,标准输入指的是键盘,标准输出和标准错误输出指的是屏幕Java语言根底类26System类用System类的方法获取系统信息,完成系统操作在Java中,系统属性起到替代环境变量的作用(环境变量是平台相关的)该类提供了一些与运行Java的系统进行交互操作的方法利用它们可以获取Java解释器或硬件平台的系统参量信息,也可直接向运行系统发出指令来完成操作系统级的系统操作可使用()方法获得一个 Properties类的对象,其中包含了所有可用的系统属性信息可使用System.getProperty(Strin
24、g name)方法获得特定系统属性的属性值System.getProperty(String name, String default)方法获得特定系统属性的属性值,或设定特定系统属性的默认值在命令行运行Java程序时可使用-D选项添加新系统属性Java语言根底类27System类class GetProps public static void main(String args) String s; try s = , “未定义); /获得系统名称 (“当前操作系统是: +s); s = , “未定义); /获得JVM版本 (“当前java虚拟机版本是: + s); s = , “未定义);
25、 /获得用户缺省路径 (“当前用户主目录: + s); s = , “未定义); /获得JVM缺省路径 System.out.println(JRE安装目录是: +s); catch(SecurityException se) (); catch (Exception e) (); Java语言根底类28System类常用的System类方法public static long currentTimeMillis( ) 获取自1970年1月1日零时至当前系统时刻的微秒数,通常用于比较两事件发生的先后时间差public static void exit(int status):在程序的用户线程执
26、行完之前,强制Java虚拟机退出运行状态,并把状态信息status 返回给运行虚拟机的操作系统,例如System .exit(0)public static void gc( )强制调用Java虚拟机的垃圾回收功能,收集内存中已丧失的垃圾对象所占用的空间,使之可以被重新加以利用Java语言根底类29Date类在包中Date类的构造方法 public Date() :获取本地当前时间 public Date(long date) 相对1970年1月1日0点(GMT)的时间 public long currentTimeMillis()可以获取系统当前时间相对于1970年1月1日0点 (GMT)的
27、毫秒数Date d = new Date();System.out.println(d);long times = ();System.out.println(new Date(times);Fri Jan 13:39:49 CST 2006Java语言根底类30Date类时间格式化 Date对象表示时间的默认顺序是:星期、月、日、小时、分、秒、年,如Sat Apr 28 21:59:38 CST 2001DateFormat的子类SimpleDateFormat可实现日期格式化常用构造方法:public SimpleDateFormat(String pattern)pattern中应当含有
28、一些有效的字符序列yy:用2位数字输出年份;yyyy:用4位数字输出年份M:用1位数字或文本输出月份MM:用2位数字或文本输出月份dd:用2位数字输出日HH:用两位数字输出小时mm:用两位数字输出分ss:用两位数字输出秒E:用字符串输出星期 Java语言根底类31Date类import ;import ;public class DateTest public static void main(String args) Date nowTime = new Date(); System.out.println(nowTime); SimpleDateFormat datetime1 = new
29、 SimpleDateFormat(yyyy-MM-dd); System.out.println(datetime1.format(nowTime); SimpleDateFormat datetime2 = new SimpleDateFormat(yyyy年MM月dd日 E HH时mm分ss秒 北京时间); SimpleDateFormat datetime3 = new SimpleDateFormat(yy年M月d日HH:m:s); System.out.println(datetime2.format(nowTime); System.out.println(datetime3.f
30、ormat(nowTime); Java语言根底类32Calendar类类在包中 Calendar类的static方法getInstance()可以获得一个日历对象日历对象的使用set()方法:将日历对象初始化为任何一个时间,当参数year取负数时表示公元前public final void set(int year,int month,int date)public final void set(int year,int month,int date,int hour,int minute)public final void set(int year,int month, int date,
31、 int hour, int minute,int second)Java语言根底类33Calendar类日历对象的使用public int get(int field)获取有关年份、月份、小时、星期等信息,field的有效值由Calendar的静态常量指定常用静态常量:YEAR、MONTH、DATE(DAY_OF_MONTH )、 DAY_OF_WEEK、HOUR(HOUR_OF_DAY)、MINUTE、SECONDCalendar calendar = (); calendar.setTime(new Date();int theyear = calendar.get(Calendar.Y
32、EAR);int thehour = calendar.get(Calendar.HOUR_OF_DAY);String 星期 = (Calendar.DAY_OF_WEEK)-1);2021214Java语言根底类34Calendar类日历对象的使用public long getTimeInMillis()将当前日历对象的时间表示为毫秒Calendar calendar = (); calendar.set(1996,9,1); long time1996 = ();calendar.set(2006,9,1); long time2006 = ();long days = (time200
33、6-time1996)/(1000*60*60*24);3652Java语言根底类35主要内容Java语言根底类字符串集合类向量、堆栈、链表与队列排序与查找36字符串类字符串分为两大类String类创立之后不会再做修改和变动的字符串常量 StringBuffer类创立之后允许再做更改和变化的字符串字符串37String类String 类对象保存不可修改的Unicode字符序列一般情况下,一个String字符串一经创立,无论其长度还是内容,都不能够再更改字符串常量与字符常量的区别字符常量是用单引号括起的单个字符,例如a,n等字符串常量是用双引号括起的字符序列,例如a,n,Hello等Java中的
34、字符串常量与C语言中的字符串常量区别C语言中的字符串是由字符数组组成的,每个字符串的结尾用0标志Java的字符串常量通常是作为String类的对象存在,有专门的属性来规定它的长度字符串38String类String类的常用方法下述方法能创立并返回一个新的String对象concat, replace, substring, toLowerCase, toUpperCase, trim, toString提供查找功能的有关方法endsWith, startsWith, indexOf,lastIndexOf提供比较功能的方法equals, equalsIgnoreCase其它方法charAt,l
35、ength字符串39String类String对象的创立public String( )用来创立一个空的字符串常量public String(String value)利用一个已经存在的字符串常量创立一个新的String对象,该对象的内容与给出的字符串常量一致这个字符串常量可以是另一个String对象,也可以是一个用双引号括起的直接常量public String(StringBuffer buffer)利用一个已经存在的StringBuffer对象为新建的String对象初始化StringBuffer对象代表内容、长度可改变的字符串变量public String(char value)利用现存
36、字符数组的内容初始化新建的String对象字符串40String类创立String对象举例分为对象的声明和对象的创立两步这两步可分成两个独立的语句,也可在一个语句中完成声明一个String对象sString s ; 此时s的值为null,要想使用s,还必须为它开辟内存空间s = new String (“ABC) ; 这样字符串s被置为ABC上述两个语句也可以合并成String s = new String ( “ABC) ;利用双引号括起字符串常量为新建的tring对象“赋值:String s = “ABC;其实这里的“赋值只是一种特殊的省略写法,Java系统会自动为每个用双引号括起的字符串
37、常量创立一个String对象因此这个语句的实际含义与效果与前一个句子完全一致字符串41String类字符串常量的操作public int length ( ) 求字符串的长度用它可以获得当前字符串对象中字符的个数,例如运行下面的代码String s = “Hello! () ; 屏幕将显示6,因为字符串“Hello!的长度为6需要注意的是在Java中,因为每个字符都是占用16个比特的Unicode字符,所以汉字与英文或其他符号相同,也只用一个字符表示就足够如果把上面句子中的字符串替换成“近来身体好吗,那么字符串的长度不变,仍然是6字符串42String类判断字符串的前缀和后缀public bo
38、olean startsWith(String prefix); public boolean endsWith(String suffix);这两个方法可以分别判断当前字符串的前缀和后缀是否是指定的字符子串举例1假设 局老用户的 号码都以字符子串“6278开始,新用户的 号码都以“8278开始如果 局需要将老用户和新用户区分开,那么可以采用如下语句: String s= ( ) ; / 设User是 局用户对象,getPhone( )是该对象的if ( ( 6278 ) ) / 返回自身 号码的方法, 号码是String对象 字符串43String类判断字符串的前缀和后缀举例2居民身份证号码
39、的最后一个数字代表了居民的性别,奇数为男性,偶数为女性假设String对象s是某位居民的身份证号码,那么下面的语句将判断出他的性别:if (s. endsWith(“0) | s.endsWith(“2) | s.endsWith(“4) | s.endsWith(“6) | s.endsWith(“8) System . out. println ( 此人是女性 ) ; startsWith和endsWith这两个方法的一个突出优点是不限制所判断的前缀、后缀的长度例如前一个例子中假设需判断的前缀从“6278变换到“627,那么原方法仍然有效,不需要更改程序字符串44String类字符串中单个
40、字符的查找public int indexOf(int ch);查找字符ch在当前字符串中第一次出现的位置,即从头向后查找,并返回字符ch出现的位置如果找不到那么返回-1。例如,下面的语句将把值0赋给整型量idx:String s = “Java是面向对象的语言,JavaScript是脚本语言;int idx = ( (int)J ) ; 字符串45String类字符串中单个字符的查找public int indexOf(int ch, int fromIndex);在当前字符串中自fromIndex位字符之后向后查找字符ch,并返回该字符首次出现的位置例如,下面的语句将查找出指定字符在字符串
41、中的所有出现位置String s = “Java是面向对象的语言,JavaScript是脚本语言;int i= -1;do i = ( (int)a, i+1 ) ; ( i + “t) ;while(i!=-1);运行结果是: 1 3 14 16 -1字符串46String类字符串中单个字符的查找public int lastIndexOf(int ch);public int lastIndexOf(int ch, int fromIndex); 从字符串的结尾向字符串的开始局部查找字符串47String类字符串中子串的查找public int indexOf(String str);pu
42、blic int indexOf(String str, int fromIndex);public int lastIndexOf(String str); public int lastIndexOf(String str, int fromIndex); 字符串48String类字符串中子串的查找String s = “Java是面向对象的语言,JavaScript是脚本语言 ;String sub = 语言;for ( int i = ( ); i != -1 ; ) i = ( sub, i - 1 ) ;System . out . print ( i + t) ;上述程序运行的结
43、果是:26 10 -1另外,还定义有获取字符串中的某个字符的方法public char charAt(int index);该方法获取当前字符串中第index个字符并返回这个字符(index从0算起)字符串49String类比较两个字符串public int compareTo(String anotherString);将当前字符串与一参数字符串比较,返回一个整型量如果两完全相同,那么compareTo( )方法返回0如果当前字符串按字母序大于参数字符串,那么compareTo( )方法返回一个大于0的整数假设compareTo( )方法返回一个小于0的整数,那么说明当前字符串按字母序小于参
44、数字符串 public boolean equals(Object anObject);是继承Object类的方法将当前字符串与方法的参数列表中给出的字符串相比较,假设两字符串相同,那么返回真值,否那么返回假值public boolean equalsIgnoreCase(String anotherString);与方法equals的用法相似,只是它比较字符串时将不计字母大小写的差异字符串50String类compareTo()举例String s = abc, s1 = aab, s2 = abd, s3 = abc;int i, j, k ;i = s . compareTo ( s1
45、) ;j = s . compareTo ( s2 ) ;k = s . compareTo ( s3 ) ;语句执行的结果是分别给i, j, k三个变量赋值为1,-1,0字符串51String类equals方法和equalsIgnoreCase方法的使用String s1 = “Hello!World ; s2 = “hello!world ;boolean b1 = s1.equals ( s2 );boolean b2 = s1.equalsIgnoreCase ( s2 ) ; 字符串52String类连接字符子串public String concat(String str);这个方
46、法将参数字符串连接在当前字符串的尾部,并返回这个连接而成的长字符串但是当前字符串本身并不改变举例String s = Hello! ;System . out. println ( s . concat ( World! ) ) ;System .out . println ( s );运行结果是:Hello!World! / 连接后的新字符串Hello! / 原字符串没有改变 字符串53String类String类举例class TestStringMethodpublic static void main(String args)String s = new String( Hello W
47、orld );( () );( s.indexOf(o) );( s.indexOf(He) );( s.startsWith(He) );( s.equals(Hello world) );( s.equalsIgnoreCase(Hello world) );( s pareTo(Hello Java) );( s.charAt(1) );( s.substring(0,2) );( s.substring(2) );( (!) );( () );( () );( () );( s.replace(o, x ) );( s ); /注意,s本身没有改变字符串54StringBuffer类S
48、tringBuffer类对象保存可修改的Unicode字符序列构造方法 StringBuffer() StringBuffer(int capacity) StringBuffer(String initialString)实现修改操作的方法append, insert, reverse, setCharAt, setLength.字符串55StringBuffer类创立字符串变量StringBuffer表示的是可扩充、修改的字符串,在创立StringBuffer类的对象时并不一定要给出字符串初值public StringBuffer( ):创立一个空的StringBuffer对象public
49、 StringBuffer(int length):给出新建的StringBuffer对象的长度public StringBuffer(String str):利用一个已经存在的字符串String对象来初始化StringBuffer对象举例StringBuffer MyStrBuff1 = new StringBuffer( ) ;StringBuffer MyStrBuff2 = new StringBuffer( 5 ) ;StringBuffer MyStrBuff3 = new StringBuffer( “Hello,Guys!) ; 需要注意的是,其中第一个对象MyStrBuff1
50、并没有相应的内存单元,需扩充之后才能使用字符串56StringBuffer类字符串变量的扩充、修改与操作public StringBuffer append( 参数对象类型 参数对象名) ;将指定的参数对象转化成字符串,附加在原StringBuffer字符串对象之后public StringBuffer insert( int 插入位置,参数对象类型 参数对象名) ; 在指定的位置插入给出的参数对象所转化而得的字符串附加或插入的参数对象可以是各种数据类型的数据,如int, double, char, String等字符串57StringBuffer类字符串变量的扩充、修改与操作举例String
51、Buffer MyStrBuff1 = new StringBuffer( ) ;MyStrBuff1 . append ( Hello, Guys!) ;System . out . println ( MyStrBuff1.toString ( ) ) ;MyStrBuff1 . insert ( 6, 30 ) ;System . out . println ( MyStrBuff1.toString ( ) ) ;上述程序执行的结果是 Hello, Guys! Hello,30 Guys! 字符串58StringBuffer类字符串变量的扩充、修改与操作举例续需要注意的是,假设希望将S
52、tringBuffer在屏幕上显示出来,那么必须首先调用toString方法把它变成字符串常量因为PrintStream的方法println( )不接受StringBuffer类型的参数StringBuffer还有一个较有用的方法用来修改字符串public void setCharAt(int index, char ch);该方法可以将指定位置处的字符用给定的另一个字符来替换例如下面的语句将把原意为“山羊的字符串变换成“外套StringBuffer MyStrBuff = new StringBuffer ( “goat ) ; ( 0, c) ; 字符串59StringBuffer类字符串
53、的赋值和加法为了编程方便,Java编译系统中引入了字符串的加法和赋值,例如String MyStr = Hello, ;MyStr = MyStr + Guys! ; 以上两语句分别相当于String MyStr = new StringBuffer( ).append(“Hello).toString( );MyStr = new StringBuffer( ).append(MyStr).append(“Guys!).toString( ); 字符串60StringBuffer类class StringAssign public static void main(String args)/
54、 几种常见的字符串赋值的方法String s;/ 直接赋值s = Hello;s = new String( Hello );/ 使用StringBuilders = new String( new StringBuffer( Hello ) );s = new StringBuffer( Hello).toString();/ 对象转为字符串s = new Object().toString();s = + new Object();字符串61StringTokenizer类提供了对字符串进行解析和分割的功能,例如要对一条语句进行单词的区分,就可用到该类StringTokenizer的构造方
55、法StringTokenizer(String str); StringTokenizer(String str, String delim); StringTokenizer(String str, String delim, boolean returnDelims);参数说明str是要解析的字符串delim是含有分隔符的字符串returnDelims表示是否将分隔符也作为一个分割串字符串StringTokenizer类java默认的分隔符“空格“制表符(t)“换行符(n)“回车符(r)该类的重要方法有public int countTokens();/ 分割串的个数public bool
56、ean hasMoreTokens();/ 是否还有分割串public String nextToken();/ 得到下一分割串62字符串63StringTokenizer类import .*;class TestStringTokenizer public static void main(String args) StringTokenizer st = new StringTokenizer(this is a test); while () (); 字符串64主要内容Java语言根底类字符串集合类向量、堆栈、链表与队列排序与查找65集合集合实际上是用一个对象代表一组对象,集合中的每个对
57、象称为一个元素集合中的元素都是对象,根本数据类型需要使用其包装类才能作为集合的元素集合中各个元素的具体类型可以不同,但一般来说,都由相同的类派生出来的从集合中检索出各个元素时,常常需要根据其具体类型不同而进行相应的强制类型转换集合框架是一个类库的集合,用来表示和操作集合的统一的架构包含实现集合的接口与类集合类66包中的集合框架集合类67集合框架中的接口集合类68集合框架中的实现类集合类6970包中的主要接口集合类71包中的主要接口集合类72包中的主要接口集合类73包中的主要接口集合类74Collection接口集合的根接口,将一组对象以集合元素的形式组织到一起, Collection的子接口包
58、括Set: 不记录元素的保存顺序,且不允许有重复元素List: 记录元素的保存顺序,且允许有重复元素Collection+add(element : Object) : boolean+remove(element : Object) : boolean+size() : int+isEmpty() : boolean+contains(element : Object) : boolean+iterator() : IteratorSetHashSetListArrayListVector集合类75Collection接口单元素添加、删除操作集合类76Collection接口查询操作集合类7
59、7Collection接口作用于元素组或整个集合的组操作public void clear():清空集合,使集合不含有任何元素 public boolean contains(Object o):判断参数指定的数据是否属于集合 public boolean isEmpty():判断集合是否为空public int size():返回集合中元素的个数 Object toArray():将集合元素存放到数组中,并返回这个数组boolean addAll(HashSet set):与参数指定的集合求并运算,使得当前集合成为两个集合的并 boolean boolean retainAll(HashSe
60、t set):与参数指定的集合求交运算,使得当前集合成为两个集合的交 boolean boolean boolean removeAll (HashSet set):与参数指定的集合求差运算,使得当前集合成为两集合之差集合类78AbstractCollection抽象类集合类79Set接口Set中可以包含null对象,但最多只能有一个null对象。集合类80SortedSet集合类81HashSet集合类82散列表集合类83HashSet与TreeSet集合类84HashSet与TreeSet举例:使用set检查多副本import .*;public class FindDups public
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 内部员工鼓励奖罚制度
- 内部审计专家库制度
- 内部审计沟通管理制度
- 内部权力监督制度
- 内部热线管理制度
- 软件公司项目经理软件开发与进度安排
- 腾讯技术面试全攻略
- 写字楼内部需要制度
- 农庄内部管理规章制度
- 农业企业安全生产环境建设规划
- 2026年包头轻工职业技术学院单招综合素质考试题库附答案详解(基础题)
- 2026年兴安职业技术学院单招职业倾向性测试题库及答案详解(新)
- 国家基层糖尿病防治管理指南(2025版)
- 2025年国企招聘考试(建筑工程及造价)经典试题及答案
- (2026)中华人民共和国海关注册登记和备案企业信用管理办法解读课件
- 年产10吨功能益生菌冻干粉的工厂设计改
- 主要通风机无计划停电停风应急预案
- 统筹方法平话及补充
- GB/T 10609.1-2008技术制图标题栏
- 课件五笔输入法
- 最新景观照明培训专业知识讲座课件
评论
0/150
提交评论