数据结构 Java语言版 王学军 第六章新.pptVIP

  • 1
  • 0
  • 约7.06千字
  • 约 21页
  • 2015-12-24 发布于广东
  • 举报

数据结构 Java语言版 王学军 第六章新.ppt

数据结构(Java语言版) 人民邮电出版社 【知识要点】 通过本章内容学习,掌握的主要内容有: 串的基本概念; 串的顺序存储和链式存储及特点; Java语言中串的基本操作及实现。 第一节 实例引入 【例6.1】打字游戏软件。如图6.1所示是一个常见的打字游戏针对单词练习的界面,当用户正确输入字符串表示的单词时,青蛙就可跳到相应位置处,青蛙可通过某一系列位置跳到河岸对面。 第二节 串的概述 【例6.2】比较串tong和too。 串比较时,其索引值从0开始,即第一个字符索引位置为0,后面依次为1,2,...,n。其比较过程如图6.2所示: 图6.2 串的比较 在串中,任意一个连续字符组成的子序列称为该串的子串。包含子串的串相应地被称为主串。通常将子串在主串中首次出现时,对应主串第一个元素的索引位置,称为该子串在主串中的索引位置,其索引值是子串的第一个字符在主串中的索引位置。 【例6.3】设有S1和S2两个串,分别为 S1= This is a string S2= is 通过判断可知,S2是S1的子串,且S2在S1中出现了两次。其中首次出现对应的主串位置索引是2,因此,称S2在S1中的索引或位置是2。 根据定义,有如下规定: 空串是任意串的子串,空串在主串的第一次出现时索引值为0。 任意串是其自身的子串,在主串的第一次出现时索引值为0。 字符串可以分为常量和变量,在Java语言中,串是通过java.lang.String类来实现的,它是一个Java API类;串变量仅仅是该类的一个实例化对象,在Java语言中,定义串变量如下: String S1= This is a String. ; String S2= Java Programming Language ; 在Java语言中,串的常量是由双引号括起来的字符序列。例如:string 123 ,This is a string ,等都是字符串常量。 第三节 串的顺序存储结构 串的存储结构分为顺序存储和链式存储。 串的顺序存储结构,就是在内存中用一段连续的存储单元存储字符序列,如图6.3所示,因此可通过数组实现,而在Java语言中常用的串存储结构就是顺序存储结构。 图6.3 串的顺序存储 根据串的操作,可将串分为静态字符串和动态字符串两种。静态字符串是指对串的操作不能进行插入、删除等改变串结构的操作,只能进行查询、求其长度等不改变串结构的操作。动态字符串是指对串进行操作时,可以对数据元素进行插入、删除等改变串结构的操作。 6.3.1 通过string类处理串 1.构造字符串 (1)直接赋值方式: String str=Hello Java; //直接赋值方式 String str1=new String(Hello Java); //通过常量字符串构造一个新的字符串对象 String str2=new String(); //构建一个空串,不是null (2)利用字符串数组或字符数组构造字符串方式。按照字节数组以及字符数组构造一个字符串对象分别如下: 利用字符串数组构造一个新的字符串对象: byte[] b = Hello Java.getBytes(); String strb = new String(b); 利用字符数组构造一个字符串对象: char[] c = new char[]{H, e, l , l , o , , J , a , v , a}; String strch = new String(c); 2.获取指定索引位置处的字符 方法:public char charAt(int index) 功能:返回索引index处的字符,当指定参数不在字符串索引值范围内时显示IndexOutOfBoundsException异常。 【例6.4】获取字符串 Hello Java 索引位置为6的字符。 String s=Hello Java; int iLocation=s.charAt(6); 程序运行后iLocation值为J。 3.比较两个字符串的大小 方法:public int compareTo(string anotherString) 功能:比较两个字符串的大小,当前面字符串string比后面字符串

文档评论(0)

1亿VIP精品文档

相关文档