第五章 字符串.

Slides:



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

软件编程基础 一、程序的编辑 Java 源程序是以 Java 为后缀的简单的文本文件,可以用各种 Java 集成开发环境中的源代码编辑器来编写,也可以用其他文 本编辑工具,如 Windows 中的记事本或 DOS 中的 EDIT 软件等。 利用文字编辑器编写下列程序 public class Hello.
Java 程序分类 Java Application :是完整程序,需要独立的解 释器解释运行;以 “.java” 为后缀的文件,以 main() 方法作为程序入口,由 java 编译器编译生 成字节码,由 Java 解释器加载执行字节码。 Java Applet 没有 main() 方法作为程序入口,是嵌在.
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概述.
Java的程式架構與基本觀念 Java語言的歷史 Java程式的開發環境 Java程式的架構 輸出與輸入物件之使用 工具使用方法介紹
四資二甲 第三週作業 物件導向程式設計.
南京理工大学 第2章 Java基本语法 本章我们将学习Java编程语言的基本语法,包括变量、操作符、表达式、语句、字符串、数组、控制流以及如何使用帮助文档。 使用下面的编程框架: public class Test{ public static void main(String []args){ //以下添加测试代码.
第二章 JAVA语言基础.
第二部分 Java语言基础篇 第4章 Java语言与面向对象 (之一).
第三章 控制结构.
再回首: Java关键字 数据类型:byte boolean char double float int long short ,
第九章 字符串.
2.1 基本資料型別 2.2 變數 2.3 運算式與運算子 2.4 輸出與輸入資料 2.5 資料型別轉換 2.6 實例
第5章 面向对象程序设计 本章要点 5.1 面向对象程序设计概述 5.2 Java语言的面向对象程序设计 5.3 方法的使用和对象数组
第二章 C# 基础知识.
常用工具类.
Java 第28讲:建立删除文件 主讲教师:李焱 讲师.
Java语言程序设计 第七部分 多线程.
Java基础 JavaSE异常.
2018/11/20 第一章 Java概述 武汉大学计算机学院计算机应用系 2018/11/20 14:33.
2018/11/22 Java语言程序设计-程序流程 教师:段鹏飞.
JAVA程序设计练习题 第6章.
第3章 語法入門 第一個Java程式 文字模式下與程式互動 資料、運算 流程控制.
JAVA 编 程 技 术 主编 贾振华 2010年1月.
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章 继承和多态.
辅导课程十三.
實作輔導 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语言程序设计-程序流程 教师:段鹏飞.
异常及处理.
第一章 Java语言概述.
3.7 Java的工具类.
C/C++/Java 哪些值不是头等程序对象
2.1 Java语法基础 2.2 Java 流程控制 2.3 数组 2.4 字符串
Java程序设计 第8章 字符串和文本I/O.
第二章Java基本程序设计.
第二章 Java基本语法 讲师:复凡.
Java變數 2014/6/24.
第二章 Java基本语法 讲师:复凡.
Java程式初體驗大綱 大綱 在學程式之前及本書常用名詞解釋 Hello Java!程式 在Dos下編譯、執行程式
2019/5/3 JAVA Socket(UDP).
第二章 Java基本语法 讲师:复凡.
Review 1~3.
龍老師我不會Debug QQ.
第二章 Java基本语法 讲师:复凡.
第4章 数组与字符串 学习目标 本章要点 上机练习 习 题.
助教:廖啟盛 JAVA Socket(UDP) 助教:廖啟盛
PPT注意事项: 当前PPT课件文件必须和提供的源代码文件夹“代码”在同一目录中即不要移动文件夹“代码”的默认位置。
JAVA 程式設計與資料結構 第三章 物件的設計.
第2章 Java语言基础.
只要功夫深 铁杵磨成针 —— 写在前面的话.
判斷(選擇性敘述) if if else else if 條件運算子.
第 5 章 常用类的使用 伍孝金
第二章 Java基础语法 北京传智播客教育
輸出執行結果到螢幕上 如果要將執行結果的文字和數值都「輸出」到電腦螢幕時,程式要怎麼寫? class 類別名稱 {
第二章 Java基本语法 讲师:复凡.
Summary
Presentation transcript:

第五章 字符串

教学内容和目标 掌握字符串的声明与创建 掌握String类的使用方法 掌握StringBuffer类的使用方法 掌握正则表达式的概念和使用

教学重难点 重点 Java字符串类的定义和使用 难点 字符串类的各个方法的使用

5.1 字符串 Java语言提供两种字符串类用来实现字符串操作: String类:用于字符串常量,也就是说字符串的值不会改变 StringBuffer类:用于字符串变量,也就是说字符串的值可以改变

String类 Java使用java.lang包中的String类来创建一个字符串变量,因此字符串变量是对象。 1.字符串常量 如,“你好”,“1234.987”,“weqweo”。 2.声明字符串 String m; 3.创建字符串 使用String类的构造方法,例如: String s=new String("we are students");

String对象产生方法(一) 由字符串文字直接生成 String str=“Hello everyone”; 生成空串 String str=new String(); 复制String对象内容 String oldStr=“Hello”; String newStr=new String(oldStr);

String对象产生方法(二) 复制StringBuffer对象内容 StringBuffer oldstr=new StringBuffer(“hello”); String newstr=new String(oldstr); 复制字符数组内容 char[ ] oldstr={‘h’,’e’,’l’,’l’,’o’}; String newstr=new String(oldstr);

5.2 String字符串的访问操作(一) length()函数:获取字符串的长度 String mystr=“hello,张三”; int strlen=mystr.length(); equals函数:比较当前字符串对象的实体是否与参数指定的字符串实体相同 String tom=new String( "we are students") String boy=new String( "We are students") String zgp= new String("we are students") tom.equals(boy)的值是false tom.equals(zgp)的值是 true。

5.2 String字符串的访问操作(二) substring函数:获取字符串的子串 String mystr=“hello,张三”; substring(int start) String str1=mystr.substring(6); Substring(int start,int end) String str2=mystr.substring(6,8); String str3=mystr.substring(0,5);

5.2 String字符串的访问操作(三) indexOf函数:从前向后搜索字符(串)位置 indexOf(int theChar); indexOf(int theChar,int fromIndex); indexOf(String str); indexOf(String str,int fromIndex); lastIndexOf函数:从后向前搜索字符(串)位置

5.2 String字符串的访问操作(四) trim()函数:一个字符串s通过调用方法trim()得到一个字符串对象,该字符串对象是s去掉前后空格后的字符串。 String mystr=“ hello,张三 ”; mystr.trim(); charAt()函数:获取串中某个字符 String mystr=“hello,张三”; char c1=mystr.charAt(0); char c2=mystr.charAt(7);

使用java.lang包中的Byte、Short、Integer 、 Long、Float、Double类调相应的类方法: 5.3 字符串与基本数据的相互转化(一) 使用java.lang包中的Byte、Short、Integer 、 Long、Float、Double类调相应的类方法: Byte. parseByte(String s) Short. parseShort(String s) Long.parseLong(String s) Float.parseFloat(String s) Double.parseDouble(String s) 可以将“数字”格式的字符串,转化为相应的基本数据类型。

String s=String.valueOf(123) 5.3 字符串与基本数据的相互转化(二) 可以将数字转化为字符串的方法: String str=String.valueOf(byte n) String str=String.valueOf(int n) String str=String.valueOf(long n) String str=String.valueOf(float n) String str=String.valueOf(double n) 例如: String s=String.valueOf(123)

5.4 对象的字符串表示 在子类的讲述中我们讲过,所有的类都默认是java.lang包中Object类的子类或间接子类。Object类有一个public 方法toString(),一个对象通过调用该方法可以获得该对象的字符串表示。

5.5 StringBuffer类 String类创建的字符串对象是不可修改的,也就是说,String字符串不能修改、删除或替换字符串中的某个字符,即String对象一旦创建,那么实体是不可以再发生变化的. StringBuffer类能创建可修改的字符串序列,也就是说,该类的对象的实体的内存空间可以自动的改变大小,便于存放一个可变的字符序列。

5.5.1 StringBuffer对象产生方法 生成空字符串 StringBuffer myStrBuf=new StringBuffer(); 生成指定容量的空字符串 StringBuffer myStrBuf=new StringBuffer(120); 复制String对象中的内容 String str=“hello”; StringBuffer myStrBuf=new StringBuffer(str);

5.5.2 StringBuffer的容量 字符串长度是指字符串中的字符个数 如果StringBuffer对象要存放的字符数大于它的容量(指初始容量),StringBuffer对象会自动扩大字符串容量,以放下更多的字符

5.5.3 StringBuffer的访问操作 length()函数:获取字符串的长度 charAt()函数:获取串中某个字符 capacity()函数:获取字符串的容量 substring()函数:获取字符串的子串 indexOf()函数:从前向后搜索字符串位置 lastIndexOf():从后向前搜索字符串位置

5.5.4 StringBuffer的修改操作 append函数:在字符串末尾添加新的内容 StringBuffer strBuff=new StringBuffer(); strBuff.append(“hello”); insert函数:在字符串中的特定位置插入一段子字符串 strBuff.append(“helo”); strBuff.insert(2,”l”);

5.5.5 StringBuffer的修改操作 setCharAt(int index, char ch); replace函数:修改指定位置的字符串 replace(int start, int end, String str); deleteCharAt函数:删除指定位置的字符 deleteCharAt(int index); delete函数:删除指定位置的字符串 delete(int start, int end);

5.6 字符串的连接(一) “+”:字符串连接符,将不同的字符串、数字、字符连接成一个完整的字符串 对于String对象,包括字符串文字,可以用“+”将两个或多个字符串连接起来,形成新的字符串。

5.6 字符串的连接(二) 如何区分字符串连接符与加号: 如果以字符串开头,那么其后的“+”号都 作为字符串连接符 如果以数值型数据开头,那么其后的“+” 号都作为加号

5.7 Java Application命令行参数 Java Application是用命令行来启动执行的,命令行参数就成为向Java Application传入数据的常用而有效的手段。 Java的命令行参数跟在命令行主类名的后面,参数之间用空格分隔。 使用命令行参数可以提高程序的灵活性和适应性。不过在使用命令行参数时要注意数组越界的问题,程序运行时系统将自动检查用户输入了多少个命令行参数并逐个地保存在数组args[]中,但是如果程序不检查用户到底输入了多少个命令行参数而直接访问args[]某下标的数组元素,则可能造成数组越界异常

public class UseComLParameter { public static void main ( String args[ ] ) int a1 , a2 , a3 ; if ( args.length < 2 ) System.out.println("运行本程序应该提供两个命令行参数"); System.exit(0); } a1 = Integer.parseInt( args[0] ) ; a2 = Integer.parseInt( args[1] ) ; a3 = a1*a2 ; System.out.println(a1 + " 与 " + a2 + "相乘的积为:" + a3 ); } }

数组越界 public class TestSystemException { public static void main(String args[]) System.out.println(“You have entered following parameters:”); for(int i=0; i<3; i++) System.out.println(″\t″ + args[i]); }

5.8 字符界面的输入输出 所谓字符界面是指字符模式的用户界面。在字符界面中,用户用字符串向程序发出命令传送数据,程序运行的结果也用字符的形式表达。虽然图形用户界面已经非常普及,但是在某些情况下仍然需要用到字符界面的应用程序,例如字符界面的操作系统,或者仅仅支持字符界面的终端等。 所有的Java Applet程序都是在图形界面的浏览器中运行的,所以只有Java Application程序可以实现字符界面中的输入输出。

单个字符的输入 public class ApplicationCharInOut { public static void main(String args[]) char c=' '; System.out.print("Enter a character please: "); try { c=(char)System.in.read(); }catch(IOException e){ }; System.out.println("You've entered character "+c); }

字符串的输入 public class ApplicationLineIn { public static void main(String args[]) String s=""; System.out.print("please enter a string:"); try BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); s = in.readLine(); }catch(IOException e){ } System.out.println("You've entered string: " + s); }

上例中使用了java. io包中两个关于输入输出的类BufferedReader和InputStreamReader。System 上例中使用了java.io包中两个关于输入输出的类BufferedReader和InputStreamReader。System.in代表了系统缺省的标准输入(即键盘),首先把它转换成InputStreamReader类的对象,然后转换成BufferedReader类的对象in,使原来的比特输入变成缓冲字符输入。然后利用readLine( )方法读取用户从键盘输入的一行字符并赋值给字符串对象s。

5.9正则表达式 一个正则表达式是含有一些具有特殊意义字符的字符串,这些特殊字符称作正则表达式中的元字符。比如,“\\dhello”中的\\d就是有特殊意义的元字符,代表0到9中的任何一个。字符串“9hello”和“1hello”都是和正则表达式:“\\dhello”匹配的字符串之一。 字符串对象调用 public boolean matches(String regex) 方法可以判断当前字符串对象是否和参数regex指的正则表达式匹配。

作业 习题5.2 习题5.3