chapter07Java实用包.ppt

上传人:小** 文档编号:3687931 上传时间:2020-10-16 格式:PPT 页数:72 大小:331.52KB
返回 下载 相关 举报
chapter07Java实用包.ppt_第1页
第1页 / 共72页
chapter07Java实用包.ppt_第2页
第2页 / 共72页
点击查看更多>>
资源描述

《chapter07Java实用包.ppt》由会员分享,可在线阅读,更多相关《chapter07Java实用包.ppt(72页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第八章 Java 实 用 包,教学目标,程序设计中常用的Java 类: Math String StringBuffer StringTokenizer Vector Enumeration,常用的类和包对应关系 :,包名 类 包名 类 Java.langString javax.swing Jbutton Wrapper classes Jlabel Math Jtextfield . Java.util Calendar java.io InputStream Date OutputStream Vector Java.text DateFormat Java.awt Graphics B

2、utton Label TextField,7.1 Math类,java.lang.Math是标准的数学函数类:封装了一些数学函数和常量 如:三角函数、指数函数、随机数函数等。 java.lang.Math类是final型的,不能被子类化或实例化, Math类的所有方法和常量是静态的。,public class MathDemo public static void main(String args) System.out.println(Math.E=+Math.E); /输出常量e System.out.println(Math.round(Math.E)=+Math.round(Math

3、.E); /四舍五入取整 System.out.println(Math.PI=+Math.PI); /输出常量p /输出大于等于e的最小双精度数 System.out.println(ceil(E)=+Math.ceil(Math.E); /输出小于等于e的最大双精度数 System.out.println(floor(E)=+Math.floor(Math.E); /将双精度值p 转化为一个整数值,输出double型 System.out.println(rint(PI)=+Math.rint(Math.PI); System.out.println(lnE=+Math.log(Math.

4、E); / 计算e的自然对数值 System.out.println(sin(pi/4)=+Math.sin(Math.PI/4); /计算p /4的正弦值 System.out.println(Math.random(); /产生0到1之间的double型数 System.out.println(int)(100*Math.random()+1); /产生1到100之间的整数 ,输出结果:,7.2 字符串类String,String 由字符组成的序列 可包含字母, 数字等. 是类 String的对象 一个String 的对象一旦创建后, 其内容不能被改变,又称常量字符串,字符串类String

5、,7.2.1 String的构造函数 7.2.2 String的方法,7.2.1 String构造函数,表7-1String类的常见构造函数,例7-1的程序演示了String类的常见的6个构造函数的使用。 /StringConstructors.java import javax.swing.*; public class StringConstructors public static void main( String args ) char charArray = b, i, r, t, h, , d, a, y ; byte byteArray = ( byte ) n, ( byte

6、 ) e, ( byte ) w, ( byte ) , ( byte ) y, ( byte ) e, ( byte ) a, ( byte ) r ; String s = new String( hello );,7.2.1 String构造函数(续),7.2.1 String构造函数(续),String s1 = new String(); String s2 = new String( s ); String s3 = new String( charArray ); String s4 = new String( charArray, 6, 3 ); String s5 = new

7、 String( byteArray, 4, 4 ); String s6 = new String( byteArray ); String output = s1 = + s1 + ns2 = + s2 + ns3 = + s3 + ns4 = + s4 + ns5 = + s5 + ns6 = + s6; JOptionPane.showMessageDialog( null, output, String类构造函数的使用, JOptionPane.INFORMATION_MESSAGE ); System.exit( 0 ); ,分别调用String类的六个构造函数,7.2.2 Str

8、ing的方法,表7-2 String类的常用方法,7.2.2 String方法(续),7.2.2 String方法(续),例7-2 String类的length、charAt和getChars方法的使用 /StringMiscellaneous.java import javax.swing.*; public class StringMiscellaneous public static void main( String args ) String s1 = hello there; char charArray = new char 5 ; String output = s1: + s

9、1; output += nLength of s1: + s1.length(); output += nThe string reversed is: ; for ( int count = s1.length() - 1; count = 0; count- ) output += s1.charAt( count ) + ; s1.getChars( 0, 5, charArray, 0 );,7.2.2 String的方法(续),调用String类的length方法,调用String类的charAt方法,调用String类的getChars方法,7.2.2 String方法(续),o

10、utput += nThe character array is: ; for ( int count = 0; count charArray.length; count+ ) output += charArray count ; JOptionPane.showMessageDialog( null, output, String类的length、charAt和getChars方法的使用, JOptionPane.INFORMATION_MESSAGE ); System.exit( 0 ); ,下面的例子通过使用String类的equals、equalsIgnoreCase、compa

11、reTo方法来进行字符串的比较。 例7-3字符串的比较,7.2.2 String方法(续),7.2.2 String方法(续),/StringCompare.java import javax.swing.JOptionPane; public class StringCompare public static void main( String args ) String s1 = new String( hello ); String s2 = goodbye; String s3 = Happy Birthday; String s4 = happy birthday; String o

12、utput = s1 = + s1 + ns2 = + s2 + ns3 = + s3 + ns4 = + s4 + n;,7.2.2 String方法(续),if ( s1.equals( hello ) ) output += s1 equals hellon; else output += s1 does not equal hellon; if ( s3.equalsIgnoreCase( s4 ) ) output += s3 equals s4n; else output += s3 does not equal s4n;,调用String类的equals方法判断字符串是否相等,调

13、用String类的equalsIgnoreCase方法在不区分大小写的情况下判断两字符串是否相等,7.2.2 String方法(续),output += pareTo( s2 ) is + pareTo( s2 ) + pareTo( s1 ) is + pareTo( s1 ) + pareTo( s1 ) is + pareTo( s1 ) + pareTo( s4 ) is + pareTo( s4 ) + pareTo( s3 ) is + pareTo( s3 ) + n; JOptionPane.showMessageDialog( null, output, 字符串的比较, JO

14、ptionPane.INFORMATION_MESSAGE ); System.exit( 0 ); ,调用String类的compareTo方法进行两字符串的大小比较,下面的例子通过调用String类的indexOf和lastIndexOf方法来完成定位字符串中的字符和子字符串。 例7-4 字符串检索,7.2.2 String方法(续),7.2.2 String方法(续),/StringIndexMethods.java import javax.swing.*; public class StringIndexMethods public static void main( String

15、args ) String letters = abcdefghabcdefgh; String output = c is located at index + letters.indexOf( c ); output += na is located at index + letters.indexOf( a, 1 ); output += n$ is located at index + letters.indexOf( $ );,调用String类的indexOf方法定位某个字符在字符串中第一次出现的位置,7.2.2 String方法(续),output += nLast c is l

16、ocated at index + letters.lastIndexOf( c ); output += nLast a is located at index + letters.lastIndexOf( a, 10 ); output += nLast $ is located at index + letters.lastIndexOf( $ ); output += ndef is located at index + letters.indexOf( def ); output += ndef is located at index + letters.indexOf( def,

17、7 ); output += nhello is located at index + letters.indexOf( hello );,调用lastIndexOf方法定位某个字符在字符串中最后一次出现的位置,调用indexOf方法定位某个子字符串在字符串中第一次出现的位置,7.2.2 String方法(续),output += nLast def is located at index + letters.lastIndexOf( def ); output += nLast def is located at index + letters.lastIndexOf( def, 25 );

18、 output += nLast hello is located at index + letters.lastIndexOf( hello ); JOptionPane.showMessageDialog( null, output, 字符串检索, JOptionPane.INFORMATION_MESSAGE ); System.exit( 0 ); ,调用lastIndexOf方法定位某个子字符在字符串中最后一次出现的位置,例7-5 字符串截取 通过调用String类的substring方法来实现在字符串中提取一个子字符串,7.2.2 String方法(续),7.2.2 String方

19、法(续),/SubString.java import javax.swing.*; public class SubString public static void main( String args ) String letters = abcdefghabcdefgh; String output = Substring from index 10 to end is + + letters.substring( 10 ) + n; output += Substring from index 3 up to 6 is + + letters.substring( 3, 6 ) + ;

20、 JOptionPane.showMessageDialog( null, output, 字符串截取, JOptionPane.INFORMATION_MESSAGE ); System.exit( 0 ); ,调用substring方法在字符串中提取一个子字符串,String valueOf methods,staticString valueOf(booleanb) Returns the string representation of the boolean argument. 例子: boolean booleanValue = true; String.valueOf( bool

21、eanValue ); /“true”,import javax.swing.*; public class StringValueOf public static void main( String args ) char charArray = a, b, c, d, e, f ; boolean booleanValue = true; char characterValue = Z; int integerValue = 7; long longValue = 10000000L; float floatValue = 2.5f; / f suffix indicates that 2

22、.5 is a float double doubleValue = 33.333; Object objectRef = hello; / assign string to an Object reference String output = char array = + String.valueOf( charArray ) + npart of char array = + String.valueOf( charArray, 3, 3 ) + nboolean = + String.valueOf( booleanValue ) + nchar = + String.valueOf(

23、 characterValue ) + nint = + String.valueOf( integerValue ) + nlong = + String.valueOf( longValue ) + nfloat = + String.valueOf( floatValue ) + ndouble = + String.valueOf( doubleValue ) + nObject = + String.valueOf( objectRef );,JOptionPane.showMessageDialog( null, output, String valueOf methods, JO

24、ptionPane.INFORMATION_MESSAGE ); System.exit( 0 ); / end class StringValueOf,7.3 StringBuffer类,Class StringBuffer When String object is created, its contents cannot change i.e., constant strings Used for creating and manipulating dynamic string data i.e., modifiable strings Can store characters base

25、d on capacity Capacity expands dynamically to handle additional characters Uses operators + and += for String concatenation,7.3 StringBuffer类,7.3.1 StringBuffer构造函数 7.3.2 StringBuffer类的方法,7.3.1 StringBuffer构造函数,表7-3StringBuffer类的构造函数,例7-6 StringBuffer类的构造函数的使用,7.3.1 StringBuffer构造函数(续),7.3.1 StringB

26、uffer构造函数(续),/StringBufferConstructors.java import javax.swing.*; public class StringBufferConstructors public static void main( String args ) StringBuffer buffer1 = new StringBuffer(); StringBuffer buffer2 = new StringBuffer( 10 ); StringBuffer buffer3 = new StringBuffer( hello ); String output = b

27、uffer1 = + buffer1.toString() + + nbuffer2 = + buffer2.toString() + + nbuffer3 = + buffer3.toString() + ; JOptionPane.showMessageDialog( null, output, StringBuffer类的构造函数的使用, JOptionPane.INFORMATION_MESSAGE ); System.exit( 0 ); ,调用默认构造函数创建StringBuffer对象buffer1,调用指定初始容量的构造函数创建StringBuffer对象buffer2,调用指

28、定初始字符串的构造函数创建StringBuffer对象buffer3,7.3.2 StringBuffer类的方法,表7-4 StringBuffer类的常用方法,7.3.2 StringBuffer类的方法(续),7.3.2 StringBuffer类的方法(续),7.3.2 StringBuffer类的方法(续),7.3.2 StringBuffer类的方法(续),例7-7StringBuffer类的append方法的使用 StringBuffer类提供11个重载的append方法,以允许将各种类型的值添加到StringBuffer对象的末尾。 11个重载的append方法方法可以处理各种

29、基本类型数据、字符数组、String对象、Object对象和StringBuffer对象。每个append都接收一个参数,并将该参数转换为一个字符串,然后将该字符串添加到StringBuffer对象的末尾。,7.3.2 StringBuffer类的方法(续),7.3.2 StringBuffer类的方法(续),/StringBufferAppend.java import javax.swing.*; public class StringBufferAppend public static void main( String args ) Object objectRef = hello;

30、String string = goodbye; char charArray = a, b, c, d, e, f ; boolean booleanValue = true; char characterValue = Z; int integerValue = 7; long longValue = 10000000; float floatValue = 2.5f; double doubleValue = 33.333;,7.3.2 StringBuffer类的方法(续),StringBuffer lastBuffer = new StringBuffer( last StringB

31、uffer ); StringBuffer buffer = new StringBuffer(); buffer.append( objectRef ); buffer.append( ); buffer.append( string ); buffer.append( ); buffer.append( charArray ); buffer.append( ); buffer.append( charArray, 0, 3 ); buffer.append( ); buffer.append( booleanValue ); buffer.append( ); buffer.append

32、( characterValue ); buffer.append( ); buffer.append( integerValue ); buffer.append( );,添加Object类型的值,添加两个空格作为分割,添加String类型的值,添加字符数组类型的值,添加字符数组中的子字符串,添加boolean类型的值,添加char类型的值,添加int类型的值,7.3.2 StringBuffer类的方法(续),buffer.append( longValue ); buffer.append( ); buffer.append( floatValue ); buffer.append( )

33、; buffer.append( doubleValue ); buffer.append( ); buffer.append( lastBuffer ); JOptionPane.showMessageDialog( null, buffer = + buffer.toString(), StringBuffer类的append方法的使用, JOptionPane.INFORMATION_MESSAGE ); System.exit( 0 ); ,添加long类型的值,添加float类型的值,添加double类型的值,添加StringBuffer类型的值,例7-8 StringBuffer类

34、的插入和删除方法使用 StringBuffer类提供10个重载的insert方法,以允许在StringBuffer对象的任何位置插入各种类型的值。这些方法可以处理各种数据类型、字符数组、String对象和Object对象。 每个insert方法都能将它的第二个参数转换为一个字符串,并将该字符串插入到第一个参数所指定的索引的前面。 StringBuffer类还提供delete和deleteCharAt方法,用于删除StringBuffer对象的任何位置上的字符。,7.3.2 StringBuffer类的方法(续),7.3.2 StringBuffer类的方法(续),/StringBufferIn

35、sert.java import javax.swing.*; public class StringBufferInsert public static void main( String args ) Object objectRef = hello; String string = goodbye; char charArray = a, b, c, d, e, f ; boolean booleanValue = true; char characterValue = K; int integerValue = 7; long longValue = 10000000; float f

36、loatValue = 2.5f; double doubleValue = 33.333;,7.3.2 StringBuffer类的方法(续),StringBuffer buffer = new StringBuffer(); buffer.insert( 0, objectRef ); buffer.insert( 0, ); buffer.insert( 0, string ); buffer.insert( 0, ); buffer.insert( 0, charArray ); buffer.insert( 0, ); buffer.insert( 0, charArray, 3,

37、3 ); buffer.insert( 0, ); buffer.insert( 0, booleanValue ); buffer.insert( 0, ); buffer.insert( 0, characterValue ); buffer.insert( 0, ); buffer.insert( 0, integerValue ); buffer.insert( 0, );,插入Object类型的值,插入两个空格作为分割,插入String类型的值,插入字符数组类型的值,插入字符数组中的子字符串,插入boolean类型的值,插入char类型的值,插入int类型的值,7.3.2 Strin

38、gBuffer类的方法(续),buffer.insert( 0, longValue ); buffer.insert( 0, ); buffer.insert( 0, floatValue ); buffer.insert( 0, ); buffer.insert( 0, doubleValue ); String output = buffer after inserts:n + buffer.toString(); buffer.deleteCharAt( 10 ); buffer.delete( 2, 6 ); output += nnbuffer after deletes:n +

39、buffer.toString(); JOptionPane.showMessageDialog( null, output, StringBuffer类的插入和删除方法使用, JOptionPane.INFORMATION_MESSAGE ); System.exit( 0 ); ,插入long类型的值,插入float类型的值,插入double类型的值,删除2.5中的5,删除33.333中的.333,7.4 StringTokenizer类,我们在阅读一句话时,常常会在脑海里将这句话分解为语言词汇(token):独立的单词和标点符号. 语句单词之间由定界符分开:空格、制表符、换行符和回车符等

40、 StringTokenizer类位于java.util包,The following is one example of the use of the tokenizer. The code: StringTokenizer st = new StringTokenizer(this is a test); while (st.hasMoreTokens() println(st.nextToken(); prints the following output: this is a test,7.4 StringTokenizer类 (续),表7-5 StringTokenizer类的构造函

41、数,7.4 StringTokenizer类 (续),表7-6 StringTokenizer类的常用方法,/TokenExample.java import java.util.*; class TokenExample public static void main( String args ) String s = This%is!the$way#theworld%ends; String delimiters = !%$#; StringTokenizer st = new StringTokenizer( s, delimiters ); while ( st.hasMoreToke

42、ns() ) System.out.println( st.nextToken() ); ,This The Way The World ends,例7-9 StringTokenizer类的使用 说明StringTokenizer类的使用。该例子显示一个窗口,在窗口的一个JTextField中输入要一个语句,按回车后,程序将符号化的结果显示在窗口的JTextArea中。,7.4 StringTokenizer类 (续),7.4 StringTokenizer类 (续),/TokenTest.java import java.util.*; import java.awt.*; import

43、java.awt.event.*; import javax.swing.*; public class TokenTest extends JFrame private JLabel promptLabel; private JTextField inputField; private JTextArea outputArea; public TokenTest() super( 测试StringTokenizer类 ); Container container = getContentPane(); container.setLayout( new FlowLayout() ); prom

44、ptLabel = new JLabel( 输入一个句子,然后按回车 ); container.add( promptLabel ); inputField = new JTextField( 20 );,7.4 StringTokenizer类 (续),inputField.addActionListener( new ActionListener() public void actionPerformed( ActionEvent event ) StringTokenizer tokens = new StringTokenizer( event.getActionCommand() )

45、; outputArea.setText( Number of elements: + tokens.countTokens() + nThe tokens are:n ); while ( tokens.hasMoreTokens() ) outputArea.append( tokens.nextToken() + n ); );,调用StringTokenizer构造函数以JTextField字段中的字符串(event.getActionCommand())建立对象tokens,调用StringTokenizer类的方法countTokens,调用StringTokenizer类的方法h

46、asMoreTokens方法,调用StringTokenizer类的方法nextToken方法,7.4 StringTokenizer类 (续),container.add( inputField ); outputArea = new JTextArea( 10, 20 ); outputArea.setEditable( false ); container.add( new JScrollPane( outputArea ) ); setSize( 275, 240 ); setVisible( true ); public static void main( String args )

47、 TokenTest application = new TokenTest(); application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); ,7.5 Vector类,在Java,数组的存储空间大小是固定的:它们不能随应用程序的存储需求的变化而变大或缩小。 Java.util包中的Vector类提供类似于数组的能力,但能够动态地调整自身存储空间的大小。 Vector(向量)类似于一个数组,但与数组相比在使用上有以下两个优点: (1)使用的时候无需声明上限,随着元素的增加,Vector的长度会自动增加。 (2)Vector提供额外

48、的方法来增加、删除元素,比数组操作高效。,The difference between array and vector,Arrays Related data items of same type Primitive type Reference type Remain same size once created Fixed-length Vectors : java.util Similar to Arrays Dynamically resizable the number of elements can been changed while your code is executing Related data items of same type Only reference type, not primitive type -Wrapper classes,Ve

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁