java语言程序设计基础篇(第八版)课件PPT第九章机械工业出版报社李娜译_第1页
java语言程序设计基础篇(第八版)课件PPT第九章机械工业出版报社李娜译_第2页
java语言程序设计基础篇(第八版)课件PPT第九章机械工业出版报社李娜译_第3页
java语言程序设计基础篇(第八版)课件PPT第九章机械工业出版报社李娜译_第4页
java语言程序设计基础篇(第八版)课件PPT第九章机械工业出版报社李娜译_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1,Chapter 9 Strings and Text I/O,2,Motivations,Often you encounter the problems that involve string processing and file input and output. Suppose you need to write a program to replace all occurrences of a word with a new word in a file. How do you solve this problem? This chapter introduces strings

2、 and text files, which will enable you to solve this problem.,3,Objectives,To use the String class to process fixed strings (9.2). To use the Character class to process a single character (9.3). To use the StringBuilder/StringBuffer class to process flexible strings (9.4). To distinguish among the S

3、tring, StringBuilder, and StringBuffer classes (9.2-9.4). To learn how to pass arguments to the main method from the command line (9.5). To discover file properties and to delete and rename files using the File class (9.6). To write data to a file using the PrintWriter class (9.7.1). To read data fr

4、om a file using the Scanner class (9.7.2). (GUI) To open files using a dialog box (9.8).,4,The String Class,Constructing a String: String message = Welcome to Java“; String message = new String(Welcome to Java“); String s = new String(); Obtaining String length and Retrieving Individual Characters i

5、n a string String Concatenation (concat) Substrings (substring(index), substring(start, end) Comparisons (equals, compareTo) String Conversions Finding a Character or a Substring in a String Conversions between Strings and Arrays Converting Characters and Numeric Values to Strings,5,Constructing Str

6、ings,String newString = new String(stringLiteral); String message = new String(Welcome to Java); Since strings are used frequently, Java provides a shorthand initializer for creating a string: String message = Welcome to Java;,6,Strings Are Immutable,A String object is immutable; its contents cannot

7、 be changed. Does the following code change the contents of the string? String s = Java; s = HTML;,7,Trace Code,String s = Java; s = HTML;,animation,8,Trace Code,String s = Java; s = HTML;,animation,9,Interned Strings,Since strings are immutable and are frequently used, to improve efficiency and sav

8、e memory, the JVM uses a unique instance for string literals with the same character sequence. Such an instance is called interned. For example, the following statements:,10,Examples,display s1 = s is false s1 = s3 is true,A new object is created if you use the new operator. If you use the string in

9、itializer, no new object is created if the interned object is already created.,11,Trace Code,animation,12,Trace Code,13,Trace Code,14,String Comparisons,15,String Comparisons,equals String s1 = new String(Welcome“); String s2 = welcome; if (s1.equals(s2) / s1 and s2 have the same contents if (s1 = s

10、2) / s1 and s2 have the same reference ,16,String Comparisons, cont.,compareTo(Object object) String s1 = new String(Welcome“); String s2 = welcome; if (pareTo(s2) 0) / s1 is greater than s2 else if (pareTo(s2) = 0) / s1 and s2 have the same contents else / s1 is less than s2,17,String Length, Chara

11、cters, and Combining Strings,18,Finding String Length,Finding string length using the length() method: message = Welcome; message.length() (returns 7),19,Retrieving Individual Characters in a String,Do not use message0 Use message.charAt(index) Index starts from 0,20,String Concatenation,String s3 =

12、 s1.concat(s2); String s3 = s1 + s2; s1 + s2 + s3 + s4 + s5 same as (s1.concat(s2).concat(s3).concat(s4).concat(s5);,21,Extracting Substrings,22,Extracting Substrings,You can extract a single character from a string using the charAt method. You can also extract a substring from a string using the su

13、bstring method in the String class. String s1 = Welcome to Java; String s2 = s1.substring(0, 11) + HTML;,23,Converting, Replacing, and Splitting Strings,24,Examples,Welcome.toLowerCase() returns a new string, welcome. Welcome.toUpperCase() returns a new string, WELCOME. Welcome .trim() returns a new

14、 string, Welcome. Welcome.replace(e, A) returns a new string, WAlcomA. Welcome.replaceFirst(e, AB) returns a new string, WABlcome. Welcome.replace(e, AB) returns a new string, WABlcomAB. Welcome.replace(el, AB) returns a new string, WABlcome.,25,Splitting a String,String tokens = Java#HTML#Perl.spli

15、t(#, 0); for (int i = 0; i tokens.length; i+) System.out.print(tokensi + );,Java HTML Perl,displays,26,Matching, Replacing and Splitting by Patterns,You can match, replace, or split a string by specifying a pattern. This is an extremely useful and powerful feature, commonly known as regular expressi

16、on. Regular expression is complex to beginning students. For this reason, two simple patterns are used in this section. Please refer to Supplement III.F, “Regular Expressions,” for further studies.,Java.matches(Java); Java.equals(Java);,Java is fun.matches(Java.*); Java is cool.matches(Java.*);,27,M

17、atching, Replacing and Splitting by Patterns,The replaceAll, replaceFirst, and split methods can be used with a regular expression. For example, the following statement returns a new string that replaces $, +, or # in a+b$#c by the string NNN. String s = a+b$#c.replaceAll($+#, NNN); System.out.print

18、ln(s); Here the regular expression $+# specifies a pattern that matches $, +, or #. So, the output is aNNNbNNNNNNc.,28,Matching, Replacing and Splitting by Patterns,The following statement splits the string into an array of strings delimited by some punctuation marks. String tokens = Java,C?C#,C+.sp

19、lit(.,:;?); for (int i = 0; i tokens.length; i+) System.out.println(tokensi);,29,Finding a Character or a Substring in a String,30,Finding a Character or a Substring in a String,Welcome to Java.indexOf(W) returns 0. Welcome to Java.indexOf(x) returns -1. Welcome to Java.indexOf(o, 5) returns 9. Welc

20、ome to Java.indexOf(come) returns 3. Welcome to Java.indexOf(Java, 5) returns 11. Welcome to Java.indexOf(java, 5) returns -1. Welcome to Java.lastIndexOf(a) returns 14.,31,Convert Character and Numbers to Strings,The String class provides several static valueOf methods for converting a character, a

21、n array of characters, and numeric values to strings. These methods have the same name valueOf with different argument types char, char, double, long, int, and float. For example, to convert a double value to a string, use String.valueOf(5.44). The return value is string consists of characters 5, .,

22、 4, and 4.,32,Problem: Finding Palindromes,Objective: Checking whether a string is a palindrome: a string that reads the same forward and backward.,CheckPalindrome,Run,33,The Character Class,34,Examples,Character charObject = new Character(b); charOpareTo(new Character(a) returns 1 charOpareTo(new C

23、haracter(b) returns 0 charOpareTo(new Character(c) returns -1 charOpareTo(new Character(d) returns 2 charObject.equals(new Character(b) returns true charObject.equals(new Character(d) returns false,35,Problem: Counting Each Letter in a String,This example gives a program that counts the number of oc

24、currence of each letter in a string. Assume the letters are not case-sensitive.,CountEachLetter,Run,36,StringBuilder and StringBuffer,The StringBuilder/StringBuffer class is an alternative to the String class. In general, a StringBuilder/StringBuffer can be used wherever a string is used. StringBuil

25、der/StringBuffer is more flexible than String. You can add, insert, or append new contents into a string buffer, whereas the value of a String object is fixed once the string is created.,37,StringBuilder Constructors,38,Modifying Strings in the Builder,39,Examples,stringBuilder.append(Java); stringB

26、uilder.insert(11, HTML and ); stringBuilder.delete(8, 11) changes the builder to Welcome Java. stringBuilder.deleteCharAt(8) changes the builder to Welcome o Java. stringBuilder.reverse() changes the builder to avaJ ot emocleW. stringBuilder.replace(11, 15, HTML) changes the builder to Welcome to HT

27、ML. stringBuilder.setCharAt(0, w) sets the builder to welcome to Java.,40,The toString, capacity, length, setLength, and charAt Methods,41,Problem: Checking Palindromes Ignoring Non-alphanumeric Characters,This example gives a program that counts the number of occurrence of each letter in a string.

28、Assume the letters are not case-sensitive.,PalindromeIgnoreNonAlphanumeric,Run,42,Main Method Is Just a Regular Method,You can call a regular method by passing actual parameters. Can you pass arguments to main? Of course, yes. For example, the main method in class B is invoked by a method in A, as s

29、hown below:,43,Command-Line Parameters,class TestMain public static void main(String args) . java TestMain arg0 arg1 arg2 . argn,44,ProcessingCommand-Line Parameters,In the main method, get the arguments from args0, args1, ., argsn, which corresponds to arg0, arg1, ., argn in the command line.,45,Pr

30、oblem: Calculator,Objective: Write a program that will perform binary operations on integers. The program receives three parameters: an operator and two integers.,Calculator,java Calculator 2 + 3,java Calculator 2 - 3,Run,java Calculator 2 / 3,java Calculator 2 “*” 3,46,Regular Expressions,A regular

31、 expression (abbreviated regex) is a string that describes a pattern for matching a set of strings. Regular expression is a powerful tool for string manipulations. You can use regular expressions for matching, replacing, and splitting strings.,Companion Website,47,Matching Strings,Java.matches(Java)

32、; Java.equals(Java);,Java is fun.matches(Java.*) Java is cool.matches(Java.*) Java is powerful.matches(Java.*),Companion Website,48,Regular Expression Syntax,Companion Website,49,Replacing and Splitting Strings,Companion Website,50,Examples,String s = Java Java Java.replaceAll(vw, wi) ;,String s = J

33、ava Java Java.replaceFirst(vw, wi) ;,String s = Java1HTML2Perl.split(d);,Companion Website,51,The File Class,The File class is intended to provide an abstraction that deals with most of the machine-dependent complexities of files and path names in a machine-independent fashion. The filename is a str

34、ing. The File class is a wrapper class for the file name and its directory path.,52,Obtaining file properties and manipulating file,53,Problem: Explore File Properties,TestFileClass,Run,Objective: Write a program that demonstrates how to create files in a platform-independent way and use the methods in the File class to obtain their properties. Figure 16.1 s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论