版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026中国核工业集团有限公司校园招聘考试模拟试题及答案解析
- 2026年济宁梁山县事业单位公开招聘工作人员(教育类)(25人)考试备考试题及答案解析
- 2026中国石油春季高校毕业生招聘考试备考题库及答案解析
- 2026贵州机电职业技术学院第十四届贵州人才博览会引进人才3人工作考试备考试题及答案解析
- 2026冀东油田分公司春季高校毕业生招聘5人笔试模拟试题及答案解析
- 儿童头围测量操作规范
- 2026年销售目标更新催办函(7篇)
- 建筑施工单位施工安全防护措施标准手册
- 新能源车辆充电设施建设与管理方案
- 企业文档管理与资料存档标准流程
- (新教材)2026年春期部编人教版三年级下册语文 第四单元 核心素养教案(反思无内容)
- 压力容器生产单位质量安全员安全总监-特种设备考试题库及答案
- 23G409先张法预应力混凝土管桩
- 班主任班级管理整改措施
- 宇虹化学有限公司年产100吨颜料红177#等搬迁技改项目立项环境影响评估报告书
- 第三方飞检迎检策划
- 2023年考研考博-考博英语-河北工业大学考试历年真题摘选含答案解析
- 黑山县万程膨润土有限责任公司矿产资源开发利用方案审查意见书
- AMR功能开启与测试总结指导书
- 工会会计工作交接清单
- (高职)旅游景区服务与管理电子课件(全套)
评论
0/150
提交评论