




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1String类类vJava中,字符串是中,字符串是String类的对象;类的对象;v可以通过使用可以通过使用String类提供的方法来完成类提供的方法来完成对字符串的操作;对字符串的操作;v创建一个字符串对象之后,将不能更改构创建一个字符串对象之后,将不能更改构成字符串的字符;成字符串的字符;v每当更改了字符串版本时,就创建了一个每当更改了字符串版本时,就创建了一个新的字符串对象,并在其内包含所做的修新的字符串对象,并在其内包含所做的修改,原始字符串保持不变。改,原始字符串保持不变。2String类类vjava语言中的字符串属于语言中的字符串属于String类。任类。任意一个字符串就是意一个
2、字符串就是String 的一个对象的一个对象v创建创建String对象对象n以前学过的赋值方法(以前学过的赋值方法(String s1=“abcd”;)n调用调用String类的构造函数创建对象类的构造函数创建对象vString对象一旦被创建了,就不能改变对象一旦被创建了,就不能改变。3String类的认识类的认识vString类的构造方法共有类的构造方法共有13种重载方式,以下是种重载方式,以下是常用的几个:常用的几个:构造方法说 明String()将创建一个空字符串String(String original)将新建一个字符串作为指定字符串的副本String(char value)将根据字
3、符数组构造一个新字符串String(byte tytes)将通过转换指定的字节数组新建一个字符串4String类构造方法示例类构造方法示例public class StringDemo public static void main(String args) char aryChar = A, C, C, P; String str1 = “CAVTC; /利用一个字符串常量值创建新的字符串利用一个字符串常量值创建新的字符串 String str2 = new String(APTECH); /利用一个字符型数组创建新的字符串利用一个字符型数组创建新的字符串 String str3 = new
4、 String(aryChar); System.out.println(str1); System.out.println(str2); System.out.println(str3); 5常用方法常用方法1求字符串常量的长度public int length();v例子:String s = Hello! ;System.out.println(s.length();String t = “你过得可好?” ;System.out.println(t.length();6常用方法常用方法2取子串public String substring(int beginIndex);public S
5、tring substring(int beginIndex,int endIndex);v例子:String s1 = “computer ;String s2=s1.substring(3);String s3=s1.substring(3,6)7常用方法常用方法3判断字符串的前缀、后缀public boolean startsWith(String prefix);public boolean endsWith(String suffix); 例1:如辽宁某地区的邮政编码以11开头。if(s.startsWith(“11”)System.out.println(“辽宁某地区”); 例2:
6、老居民身份证号码最后一位代表性别。if(s.endsWith(0)|s.endsWith(2)|s.endsWith(4) |s.endsWith(6)|s.endsWith(8)System.out.println(此人是女性!); 8常用方法常用方法4字符串中单个字符的查找public int indexOf(int ch);public int indexOf(int ch,int fromIndex);方法一:查找字符ch在当前字符串中第一次出现的位置,如果找不到则返回-1。方法二:从在当前字符串的第fromIndex位字符之后,开始查找字符ch第一次出现的位置如果找不到则返回-1。9
7、例例String s = “Java是面向对象的语言,JavaScript是脚本语言。”;int i = s.indexOf(int)J);System.out.println(i);int j = s.indexOf(int)J,6);System.out.println(j); 10常用方法常用方法5字符串中子串的查找public int indexOf(String str);public int indexOf(String str,int fromIndex);public char charAt(int index);/获取当前字符串中第index位的字符 11例子String s
8、 = “Java是面向对象的语言,JavaScript是脚本语言。”;int i = s.indexOf(“语言”);System.out.println(i);int j = s.indexOf(“语言”,12);System.out.println(j);char c = s.charAt(5);System.out.println(c);12常用方法常用方法6比较两个字符串public int compareTo(String anotherString);public boolean equals(Object anotherObject);public boolean equalsI
9、gnoreCase(String anotherString); 方法一:比较两个字符串的大小,返回值是两个字符串首次出现不同字符时编码的差值。 方法二:equals重载Object类的方法,如果当前字符串与参数字符串完全相同,则返回真,否则返回假。 方法三:equalsIgnoreCase与方法equals的用法相似,只是它比较时不计大小写。 13例例vString s1=“java p”,s2=“java P”;vint k1,k2,k3;vk1=pareTo(“java q”); vk2=pareTo(s2); vk3=pareToIgnoreCase(s2);14常用方法常用方法7连接
10、字符子串public String concat(String str);该方法把参数字符串连接到当前字符串的尾部,并返回这个连接而成的字符串,但当前字符串本身不改变。例子:String s = Hello ;System.out.println(s.concat(World! );System.out.println(s);15StringBuffer类字符串 v在实际应用中,经常会遇到对字符串进行在实际应用中,经常会遇到对字符串进行动态修改。这时动态修改。这时String类的功能受到限制,类的功能受到限制,而而StringBuffer类可以完成字符串的动类可以完成字符串的动态添加、插入和替
11、换等操作。态添加、插入和替换等操作。16StringBuffer类字符串 v构造函数:StringBuffer():构造一个没有任何字符的字符串对象:构造一个没有任何字符的字符串对象,缓冲缓冲区的初始容量为区的初始容量为16个字符。个字符。StringBuffer s=new StringBuffer(); StringBuffer(int length):构造一个长度为:构造一个长度为length的的字符串对象。字符串对象。StringBuffer s=new StringBuffer(12);StringBuffer(String str):以:以str为初始值构造一个为初始值构造一个St
12、ringBuffer类对象,初始容量为字符串长度再加类对象,初始容量为字符串长度再加16个字符。个字符。StringBuffer s=new StringBuffer(test);17StringBuffer类字符串 v常用方法常用方法 : public StringBuffer append(boolean b) :是向字符串缓:是向字符串缓冲区冲区“追加追加”元素,但是,这个元素,但是,这个“元素元素”参数可以是参数可以是布尔量、字符、字符数组、双布尔量、字符、字符数组、双精度数、浮点数、整型数、长整型数、对精度数、浮点数、整型数、长整型数、对象类型、字符串和象类型、字符串和StringB
13、uffer类类等。等。如果添加的字符超出了字符串缓冲区的长如果添加的字符超出了字符串缓冲区的长度,度,Java将自动进行扩充。将自动进行扩充。StringBuffer s=new StringBuffer(test);char c=a,b;System.out.println(s.append(c);18StringBuffer类字符串 v常用方法 :v public StringBuffer insert(int offset, double d) :在当前在当前StringBuffer对象中插入一个元素,第一个参数对象中插入一个元素,第一个参数offset表插入位置,第二个参数表插入位置,
14、第二个参数d表要插入的数据,这个表要插入的数据,这个“元素元素”参数可以是参数可以是布尔量、字符、字符数组、双精度数、布尔量、字符、字符数组、双精度数、浮点数、整型数、长整型数、对象类型、字符串浮点数、整型数、长整型数、对象类型、字符串等。等。StringBuffer sb=new StringBuffer(I am a student!); System.out.println(sb.insert(7,good );/输出结果为:输出结果为:I am a good student!19StringBuffer类字符串 v常用方法常用方法 :v public StringBuffer dele
15、te(int start, int end) :删除当前:删除当前StringBuffer对象中以索引号对象中以索引号start开始到开始到end结束的子串,但不会删除结束的子串,但不会删除end处的字处的字符。符。StringBuffer sb=new StringBuffer(I am a student);System.out.println(sb.delete(0,7); / 输出结果为:输出结果为:student20StringBuffer类字符串 v常用方法常用方法 :v public StringBuffer deleteCharAt(int index) :删除指定位置的单个字
16、符。删除指定位置的单个字符。StringBuffer sb=new StringBuffer(test);System.out.println(sb.deleteCharAt(2); 21StringBuffer类字符串 v常用方法常用方法 :v public StringBuffer replace(int start, int end, String str) :替换当前替换当前StringBuffer对象的字符串。对象的字符串。从从start开始,到开始,到end结束的位置替换成结束的位置替换成str。StringBuffer sb=new StringBuffer(I am a stu
17、dent.);System.out.println(sb.replace(7,14, teacher);/ 输出结果为:输出结果为:I am a teacher.22StringBuffer类字符串 v常用方法常用方法 :v public StringBuffer reverse():将字符串翻转。将字符串翻转。StringBuffer sb = new StringBuffer(0123456789);System.out.println(sb.reverse(); / 输出结果为:输出结果为: 987654321023StringBuffer类字符串 v常用方法常用方法 :v public
18、 void setCharAt(int index, char ch) :将给定位置将给定位置index处的字符设置为处的字符设置为 ch 。StringBuffer sb = new StringBuffer(test);sb.setCharAt(0, T);System.out.println(sb);24StringBuffer类字符串 v常用方法常用方法 :v public int capacity() :返回当前容量。返回当前容量。StringBuffer sb = new StringBuffer(test);System.out.println(sb.capacity();注:整
19、个容量的大小为:当前字符串的长度注:整个容量的大小为:当前字符串的长度+16,其中其中16为默认分配空间为默认分配空间25String与StringBuffer vString类对象创建后不能再修改和变动,类对象创建后不能再修改和变动,而而StringBuffer类对象创建后允许修改类对象创建后允许修改和变动。和变动。 26String与StringBuffer vString类:类: v String str1 = new String(“sss); String str2 = new String(test); String str3 = str1; str1 = str1.concat(
20、str2); System.out.println(str1); System.out.println(str2); System.out.println(str3); System.out.println(str3=str1);ssstestsssteststr1str2str3str127String与StringBuffer vStringBuffer类:类: v StringBuffer str1 = new StringBuffer(mutou); StringBuffer str2 = new StringBuffer(test); StringBuffer str3 = str1
21、; str1= str1.append(str2); System.out.println(str1); System.out.println(str2); System.out.println(str3); System.out.println(str3=str1);ssstestteststr1str2str328数组数组 数组是相同类型的数据按顺序组成的一种复合数据类型 通过数组名加数组下标来使用数组中的数据。下标从0开始。291. 声明数组 数组的声明声明格式: 数组元素类型 数组名; 数组元素类型 数组名; 例:int MyIntArray; int MyIntArray; 可以声明
22、任何类型的数组原始类型或类类型 char s;/或char s; Point p ; / where Point is a class 声明数组仅仅指定了数组的名字和数组元素类型,在使用数组前还必须为它分配内存空间,即创建数组。数组标志302. 创建数组 在为数组分配内存空间时必须指明数组的长度。 格式: 数组名 = new 数组元素类型 数组元素个数; 例:s = new char4; 数组s获得了4个用来存放char型数据的内存空间 数组变量s中存放着这些内存单元的首地址0 x362ABss0s1s2s3数组的内存模式数组的内存模式Java数组的下限为031 声明数组和创建数组可以一起完成
23、: int MyIntArray=new int10; 例: int arr=new int5;32分配4个整数的内存空间int a new int 4;0 x1000把内存地址赋给变量aa 1a 3a 2a 000000 x10040 x10080 x10000 x1012创建数组的内存分配示意图创建数组的内存分配示意图int a=new int4; =a333. 数组元素的使用 一维数组通过下标访问自己的元素,如s0; 下标从0开始,下标越界将发生异常; 所有的数组都有一个属性length,存储数组元素的个数,利用它可方便地完成很多操作; float a=new float6; 则a.le
24、ngth的值为634 创建数组后,系统会给每个数组元素一个默认的值。 元素类型是基本数据类型的数组,在创建数组空间时可给出各数组元素的初值,这时可省略new运算符。 int a=1,2,3,4,5,6,7,8,9,10; int a; a=new int10;a0=1;a1=2;a9=10;静态初始化静态初始化动态初始化动态初始化4. 数组的初始化35 给数组元素分配内存并为数组元素赋初值的过程称为数组初始化。初始化可分为动态初始化和静态初始化。 静态初始化 当数组元素的初始化值直接由括在大括号“ ”之间的数据给出时,就称为静态初始化。 适用于数组的元素不多且初始元素有限时。往往和声明结合在一
25、起使用。 其格式如下: array_type array_Name=element1, element2; 动态初始化 先用new操作符为数组分配内存,然后才为每一个元素赋初值。 36声明的同时赋初值:声明的同时赋初值:String names = “Georgianna”, “Jen”, “Simon”; String names ; names = new String 3; names 0 = “Georgianna”; names 1 = “Jen”; names 2 = “Simon”; 静态初始化静态初始化动态初始化动态初始化注:由于数组中每一个元素都作为一个单独的对象来考虑,注:
26、由于数组中每一个元素都作为一个单独的对象来考虑,因而必须逐一建立因而必须逐一建立 。37创建数组元素并初始化 对象数组(引用变量数组):对以某一类的对象为元素的数组而言,创建并初始化每个数组元素是必不可少的。Student stu; /定义一个Student类型数组stu=new Student10; 注意: 上述语句分配存储空间,创建Student类型数组,每个元素都是默认值为null的引用变量。 内存分配如下图所示:3801289-nullstuStudent stu;stu=new Student10;图4-5创建对象数组的内存示意图 完成所有数组元素的创建和初始化之后,才可在程序中使用
27、这些元素。如果强行使用未经上述步骤初始化的数组,会出现NullPointException异常错误。 39 如何创建数组元素? 执行对象的构造方法,即实例化对象。for (int i=0;i10;i+)stui=new Student(); 内存分配如图4-6所示:01289stuStudent对象Student对象Student对象Student对象Student对象图4-6对象数组初始化后的内存示意图405. 处理数组 处理数组元素时,会经常使用for循环。 所有数组元素都是同一类型的,可以使用循环以同样的方式反复处理; 由于数组的大小已知,使用for循环比较合理。41输出数组for(in
28、t i=0;imyList.length;i+) System.out.print(myListi+ ); 为输出数组,必须使用类似下面的循环,输出数组中的每一个元素。426. 数组的复制 在Java中,可以使用赋值语句复制基本类型的变量,但不能复制数组。 将一个数组变量复制给另一个数组变量,实际上是一个数组的引用复制给另一个变量,使两个变量指向同样的内在地址。 Contents of list1 list1 Contents of list2 list2 赋值前 list2 = list1; Contents of list1 list1 Contents of list2 list2 赋值后 list2 = list1; Garbage 43复制数组有三种方法:1. 用循环语句逐个复制数组的元素int sourceArray=2,3,4,5,33;int targetArray=new intsourceArray.length;for(int
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 手工加工生产制作
- 不动产二次抵押协议
- 临时陪聊人员合同
- 大学物理学 第一卷 经典物理基础 第6版 课件 6 变化的电磁场
- 拍卖付款流程协议
- 会议主题定制合同
- 商标联合持有合同(2篇)
- 拍卖物品清理及处置协议
- 家族借款合同范本
- 代理购销供应协议
- 空调维保服务投标方案(技术标)
- 幼儿园户外自主游戏
- 22S803 圆形钢筋混凝土蓄水池
- 烟供.火供.火施仪轨
- Python语言程序设计 课件全套 清华 第1-12章 计算机科学基础 - 其他常用库介绍
- 蔬菜大棚钢结构施工组织设计
- 轮机工程船舶柴油机主动力推进装置培训课件
- 森林区划-组织森林经营类型(森林资源经营管理)
- 灰枣种植技术
- 医院污水处理技术指南(环发2023年197号2023年20实施)
- 求职登记表(标准模版)
评论
0/150
提交评论