Java程序设计 第8章 字符串和文本I/O.

Slides:



Advertisements
Similar presentations
主要内容 Java 的常用包 Java 的常用包 “ == ” 和 “ equals ” 的用法 “ == ” 和 “ equals ” 的用法 基本数据类型与引用类型 基本数据类型与引用类型 String 和 StringBuffer String 和 StringBuffer 对象的克隆( clone.
Advertisements

软件编程基础 一、程序的编辑 Java 源程序是以 Java 为后缀的简单的文本文件,可以用各种 Java 集成开发环境中的源代码编辑器来编写,也可以用其他文 本编辑工具,如 Windows 中的记事本或 DOS 中的 EDIT 软件等。 利用文字编辑器编写下列程序 public class Hello.
1 第 10 章 字串. 2 字串的產生  其中 StringBuffer 與 StringBuilder 類別會在 10-3 節中介 紹。底下就來看看如何透過前 4 個建構方法產生字串: 這 是 個 測 試 字 串 4ED6 test 4ED6 test[0] test[1] test[2] test[3]
单元二:面向对象程序设计 任务二:借书卡程序设计.
第四章 类、对象和接口.
3.2 Java的类 Java 类库的概念 语言规则——程序的书写规范 Java语言 类库——已有的有特定功能的Java程序模块
JAVA 编 程 技 术 主编 贾振华 2010年1月.
项目6 通用堆栈.
檔案處理.
Java程序设计教程 第一讲 Java概述.
四資二甲 第三週作業 物件導向程式設計.
算法设计与分析 Algorithm Design and Analysis
第五章 字符串.
南京理工大学 第2章 Java基本语法 本章我们将学习Java编程语言的基本语法,包括变量、操作符、表达式、语句、字符串、数组、控制流以及如何使用帮助文档。 使用下面的编程框架: public class Test{ public static void main(String []args){ //以下添加测试代码.
第二章 JAVA语言基础.
创意源自激情,技术成就梦想 畅翼创新俱乐部 2012年春俱乐部第三次技术培训 赵程.
第九章 字符串.
程式設計實作.
2.1 基本資料型別 2.2 變數 2.3 運算式與運算子 2.4 輸出與輸入資料 2.5 資料型別轉換 2.6 實例
控制流程 邏輯判斷 迴圈控制.
.NET 程式設計入門(使用 C#) 講師:鄧智鴻.
第二章 C# 基础知识.
常用工具类.
Java 第28讲:建立删除文件 主讲教师:李焱 讲师.
第十八章 鍵盤與電容式觸控介面應用實作 讀取鍵盤輸入 按鍵偵測與掃描原理 認識Arduino的String(字串)程式庫
實作輔導 日期: 3/11 09:10~16:00 地點:臺北市立大學 臺北市中正區愛國西路一號 (中正紀念堂站7號出口)
2018/11/22 Java语言程序设计-程序流程 教师:段鹏飞.
JAVA程序设计练习题 第6章.
第3章 語法入門 第一個Java程式 文字模式下與程式互動 資料、運算 流程控制.
2018/11/27 Java语言程序设计-程序流程 教师:段鹏飞.
JAVA程序设计 第5章 深入理解JAVA语言----补充.
程式設計實作.
第四章 基本輸出入 Java應用程式的輸出入介面有三種,分別是命令提示字元視窗、AWT元件、及Swing元件。本單元先介紹命令提示字元視窗,AWT請看第16、17章,Swing請看第20章。 輸入 輸出.
抽象类 File类 String类 StringBuffer类
第2章回顾 标识符:不用记,动手 关键字:if, else, switch, for, while, do, break, continue, void, …… 局部变量和成员变量 ①变量作用域 ②内存布局 基本数据类型 ①4类8种 ②互相转换 流程控制语句 ①分支 if……else, switch.
Java程序设计 第9章 继承和多态.
第4章 数组和集合 4.1 一维数组 4.2 二维数组 4.3 Array类 4.4 交错数组 4.5 ArrayList类
4.1 一維陣列 4.2 for(:) 迴圈 4.3 動態陣列 4.4 二維陣列 4.5 非矩形陣列
辅导课程十三.
實作輔導 3 日期: 4/14(星期六) 09:10~12:00、13:10~16:00
3.1 数据类型 3.2 标识符与关键字 3.3 常量 3.4 变量 3.5 运算符与表达式 3.6 一个编程实例
2019/1/17 Java语言程序设计-程序流程 教师:段鹏飞.
3.7 Java的工具类.
Ch02-基礎語法.
C/C++/Java 哪些值不是头等程序对象
第三章 C# 基础知识.
《JAVA程序设计》 语音答疑 辅导老师:高旻.
實作輔導 2 日期: 3/24(星期六) 09:10~16:00 地點:臺北市立大學 臺北市中正區愛國西路一號 (中正紀念堂站7號出口)
第二章Java基本程序设计.
第三课 标识符、关键字、数据类型.
第二章 Java基本语法 讲师:复凡.
Java變數 2014/6/24.
第二章 Java基本语法 讲师:复凡.
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
第二章 Java语法基础.
第二章 类型、对象、运算符和表达式.
Review 1~3.
第二章 Java基本语法 讲师:复凡.
方法進階及物件導向基礎 Lecturer: 楊昌樺.
第4章 数组与字符串 学习目标 本章要点 上机练习 习 题.
PPT注意事项: 当前PPT课件文件必须和提供的源代码文件夹“代码”在同一目录中即不要移动文件夹“代码”的默认位置。
JAVA 程式設計與資料結構 第三章 物件的設計.
變數、資料型態、運算子.
第2章 Java语言基础.
基本資料型態 變數與常數 運算子 基本的資料處理 授課:ANT 日期:2014/03/03.
判斷(選擇性敘述) if if else else if 條件運算子.
PPT注意事项: 当前PPT课件文件必须和提供的源代码文件夹“代码”在同一目录中即不要移动文件夹“代码”的默认位置。
第 5 章 常用类的使用 伍孝金
第二章 Java基础语法 北京传智播客教育
Summary
Presentation transcript:

Java程序设计 第8章 字符串和文本I/O

学习目标 掌握String类处理固定长度的字符串 了解Character类处理单个字符 掌握StringBuffer类处理可变长度字符串 使用File类处理文件 使用PrintWriter类向文件写数据 使用Scanner类从文件读数据

String类 java.lang.String表示一个固定长度的字符序列。 构造函数 长度(length) 获取字符(charAt) 连接(concat) 截取(substring) 比较(equals, equalsIgnoreCase, compareTo, startWith, endWith, regionMatch) 转换(toLowerCase, toUpperCase, trim, replace) 查找(indexOf, lastIndexOf) 字符串和数组间转换(getchars, toCharArray) 字符串和数字间转换(valueOf)

构造函数 从字面值创建字符串 由于字符串经常使用,java提供了创建字符串的简写形式。 String newString = new String(stringLiteral); 例如: String message = new String("Welcome to Java"); 由于字符串经常使用,java提供了创建字符串的简写形式。 String newString = stringLiteral; String message = "Welcome to Java";

字符串是不可变的 字符串对象创建之后,其内容是不可修改的。 String s; s = “java”; s = “HTML”; s s

规范字符串 由于字符串是不可变的,为了提高效率和节省内存,如果两个字符串由于相同的字面值创建的,那么java虚拟机只创建一个字符串对象。这样的字符串称为规范字符串(canonical string)。 可以使用字符串对象的intern方法返回标准化字符串。 : String "Welcome to Java" String s = "Welcome to Java"; String s1 = new String("Welcome to Java"); String s2 = s1.intern(); String s3 = "Welcome to Java"; System.out.println(s1 == s); //false System.out.println(s2 == s); //true System.out.println(s3 == s); //true : String "Welcome to Java"

比较字符串 equals方法用于比较两个字符串是否包含相同的内容: equalsIngnoeCase忽略大小写比较内容是否相同 两个字符串内容相同,返回true 两个字符串内容不同,返回false equalsIngnoeCase忽略大小写比较内容是否相同 regionMatch比较部分内容是否相同 startsWith判断是否以某个字符串开始 endsWith判断是否以某个字符串结束 compareTo方法用于比较两个字符串的大小,即第一个不同字符的差值。s1.compareTo(s2)的返回值: 当两个字符串相同时,返回0 当s1按字典排序在s2之前,返回小于0的值 当s1按字典排序在s2之后,返回大于0的值 Example:TestCompare.java

字符串长度和获取单个字符 调用length()方法可以获取字符串的长度。 例如: message.length()返回15 charAt(index)方法可以获取指定位置的字符。index的值必须在0到s.length()-1之间。 message.charAt(0)返回字符’W’ W e l c o m t J a v message.charAt(0) message.charAt(14) 1 2 3 4 5 6 7 8 9 10 11 12 13 14

连接字符串 concat方法用于连接两个字符串。例如: 使用加号(+)连接两个字符串。例如: 连接操作返回一个新的字符串。 String s3 = s1.concat(s2); 使用加号(+)连接两个字符串。例如: String s3 = s1 + s2; s1 + s2 + s3 等价于s1.concat(s2).concat(s3) 连接操作返回一个新的字符串。

截取子串 subString用于截取字符串的一部分,返回新字符串。 public String substring(int beginIndex, int endIndex) 返回字符串的子串。子串从beginIndex开始,直到endIndex-1 public String substring(int beginIndex) 返回字符串的子串。子串从beginIndex开始,直到字符串的结尾。 W e l c o m t J a v 1 2 3 4 5 6 7 8 9 10 11 12 13 14 message.substring(0, 11) message.substring(11)

字符串转换 toLowerCase将字符串转换成小写形式 toUpperCase将字符串转换成大写形式 trim删除两端的空格 replace字符替换 Example:TestConvert.java

查找字符或字符串 indexOf返回字符串中字符或字符串匹配的位置,返回-1表示未找到。 "Welcome to Java".indexOf('W') returns 0. "Welcome to Java".indexOf('x') returns -1. "Welcome to Java".indexOf('o', 5) returns 9. "Welcome 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.

字符数组和字符串间的转换 toCharArray将字符串转换成字符数组 String s = “Java”; 将字符数组转换成字符串 char[] charArray = s.toCharArray(); 将字符数组转换成字符串 使用String的构造函数 new String(new char[] {‘J’,a’,v’,a’}); 使用valueOf方法 String.valueOf(new char[] {‘J’,‘a’,‘v’,‘a’});

基本数据类型和字符串间的转换 valueOf方法将基本数据类型转换为字符串。例如 字符串转换为基本类型 String s1 = String.valueOf(1.0); //“1.0” String s2 = String.valueOf(true); //“true” 字符串转换为基本类型 Double.parseDouble(str) Integer.parseInt(str) Boolean.parseBoolean(str)

例 判断回文 回文是指顺读和倒读都一样的词语。例如“mom”, “dad”, ”noon”都是回文。编写程序,判断一个字符串是否是回文。 Example:CheckPalindrome.java

Character类 Character类的作用 方法 将char类型的数据封装成对象 包含处理字符的方法和常量 isDigit方法判断一个字符是否是数字 isLetter方法判断一个字符是否是字母 isLetterOrDigit方法判断一个字符是否是字母或数字 isLowerCase方法判断一个字符是否是小写 isUpperCase方法判断一个字符是否是大写 toLowerCase方法将一个字符转换成小写 toUpperCase方法将一个字符转换成大写

例 统计字符串中字符的个数 编写程序,统计字符串每个字符出现的次数。假定字母不区分大小写。 解决方案 使用String类的toLowerCase方法,将字符全部转换成小写字母。 创建一个包含26个整数的数组,对每个字母出现的次数进行计数。 Example:CountEachLetter.java

StringBuffer StringBuffer用于处理可变内容的字符串。 append方法在字符串的结尾追加数据 insert方法在指定位置上插入数据 reverse方法翻转字符串 replace方法替换字符 toString方法返回String对象 capacity方法返回缓冲区的容量 length方法返回缓冲区中字符的个数 setLength方法设置缓冲区的长度 charAt方法返回指定位置的字符 setCharAt方法设置指定位置的字符

例 检查回文 编写程序,检查回文,并忽略不是字母和数字的字符。 解决方案 创建一个新的StringBuffer,将字符串的字母和数字添加到StringBuffer中,返回过滤后的String对象。 翻转过滤后的字符串,并与过滤后的字符串进行比较,如果内容相同则是回文。 Example:PalindromeIgnoreNonAlphanumeric.java

命令行参数 可以从命令行向java程序传递参数。参数以空格分隔,如果参数本身包含空格,用双引号括起来。 格式: java 类名 参数1 参数2 … 例如 java TestMain “First num” alpha 53 命令行参数将传递给main方法的args参数。args是一个字符串数组,可以通过数组下标访问每个参数。 public static void main(String[] args)

例 使用命令行参数 编写程序,执行整数的二元操作。程序接收3个参数:一个运算符和两个整数。例如: java Calculator 2 + 3 输出 2 + 3 = 5 Example:Calculator.java

java.io.File类 File对象表示文件系统的文件或路径。 获取文件路径名的各组成部分 测试底层文件的信息 查询和更改文件 创建、删除、重命名文件 列出目录中的文件 Example:TestFileClass.java

java.io.PrintWriter类 PrintWriter用于以文本的形式输出对象、字符串和基本数据类型。 方法 PrintWriter pw = new PrintWriter(fileName); 方法 print println printf 提供了对以下数据类型的输出 char int float Object boolean char[] long double String Example:WriteData.java

使用java.util.Scanner读数据 Scanner可以从输入流、文件、字符串读取以空白字符分隔的令牌(token),并转换成指定的基本数据类型和字符串。 Example:ReadData.java