Upload
thyra
View
65
Download
2
Embed Size (px)
DESCRIPTION
第 8 章 字符串. Java 程序设计 教程. 本章主要内容. 创建字符串 使用 String 类 使用 StringBuffer 类. 字符. 字符和字符串的基础知识. 字符是 构造 Java 源程序的基本元素 。 表示方法为:用单引号括起来。 例如,‘ Z ’ 、‘ \n ’ 代表换行符。. 字符串. 字符和字符串的基础知识. 字符串是作为一个单元来进行处理的一系列字符,由字母、数字和各种特殊字符组成 。 表示方法为:双引号括起来的字符序列 "this is a java string" - PowerPoint PPT Presentation
Citation preview
第 8 章 字符串
Java 程序设计教程
2
本章主要内容
• 创建字符串• 使用 String 类 • 使用 StringBuffer 类
3
字符
字符是构造 Java 源程序的基本元素。表示方法为:用单引号括起来。
– 例如,‘ Z’ 、‘ \n’ 代表换行符。
字符和字符串的基础知识
4
字符串
字符串是作为一个单元来进行处理的一系列字符,由字母、数字和各种特殊字符组成 。
表示方法为:双引号括起来的字符序列– "this is a java string"– "it contains a \" " // 此字符串有含有特殊
字符 \"
字符和字符串的基础知识 字符与字符串的区分在于所使用的表示符号。
5
创建 String 对象 创建方法 1 : String str1="This is a string" ;
– 每个用双引号括起的字符串都作为 String 类的一
个实例 创建方法 2 : String str3=new String(str1) ;
创建方法 3 :由字符数组来产生 – char ch[]={'a', 'b', 'c'};– String str4=new String(ch);
其它创建 String 对象方法的方法见例 8.1
创建字符串对象
6
创建字符串对象
创建 StringBuffer 对象利用 StringBuffer 类的 3个构造方法创建 StringBuffer 类的对象。
public StringBuffer()– 构造一个没有字符的字符串缓冲区,初始容量为
16 个字符长。 public StringBuffer(int length)
– 构造一个没有字符的字符串缓冲区,初始容量由参数 length 指定。
public StringBuffer(String string )– 给参数 string 构造一个字符串缓冲区,初始容量
为 string 长度加 16
7
例 8 . 1 字符串对象的创建 import java.io.*;
import java.applet.Applet;
import java.awt.Graphics;
public class StringDemo extends Applet
{byte b[]={'A','','b','y','t','e','','a','r','r','a','y'};
char c[]={'A',' ','c','h','a','r',' ','a','r','r','a','y'};
String s1,s2,s3,s4,s5,s6,s7,s8,s9;
StringBuffer b1,b2,b3;
public void init()
{ b1=new StringBuffer();
b2=new StringBuffer(10);
b3=new StringBuffer("A string buffer");
创建字符串对象
s1=new String(); // 创建一个空 String 对象s2=new String("A string"); // 以字符串为参数创建 String 对象s3=new String(b3); // 以 StringBuffer 对象为参数创建 String 对象s4=new String(b); // 以 b 为参数创建 String 对象, 8 位字节自动转为 16 位字符
s5=new String(b,2,4); // 从 b 的第 3 位,取 4 个元素为参数创建 String 对象try{ // 如果下面的字符集编码不存在将抛出异常
s6=new String(b,2,10,"GBK"); // 同 s5 ,最后的字符串参数为字符集编码
s7=new String(b,"GBK"); // 同 s4 ,最后的字符串参数为字符集编码 }catch(UnsupportedEncodingException e){}s8=new String(c); // 以字符数组 c 为参数创建 String 对象s9=new String(c,2,4); // 从 c 的第 3 位,取 4 个元素为参数创建 String 对象 }
public void paint(Graphics g)
{ g.drawString("s1="+s1,20,20);
g.drawString("s2="+s2,20,35);
g.drawString("s3="+s3,20,50);
g.drawString("s4="+s4,20,65);
g.drawString("s5="+s5,20,80);
g.drawString("s6="+s6,20,95);
g.drawString("s7="+s7,150,20);
g.drawString("s8="+s8,150,35);
g.drawString("s9="+s9,150,50);
g.drawString("b1="+b1.toString(),150,65);
g.drawString("b2="+b2.toString(),150,80);
g.drawString("b3="+b3.toString(),150,95);
}
}
10
例 8.1 的结果
11
String 类类 String 是用来表示字符串一般用途
的类,它的特性是一旦字符串产生之后,字符串的内容就不再变动。
String 类的方法
String 类的方法 求字符串长度: public int length() :它返回一个字符串的长度。 例如: String message="abcdefg"; System.out.print(message.length()); 输出字符串 message 的长度 7 。 连接字符串
使用串连接操作符 “ +” 将两个字符串连接起来 " and " + " html " ; 结果为 " andhtml"可以用 concat ()方法连接两个字符串 public void concat(String s) s1="abc",s2="def " ; String s3=s1.concat(s2); s3 的结果: abcdef
比较字符串 – boolean equals(String str) – boolean equalsIgnoreCase(String str)// 忽略字符大小写
– int compareTo(String str) – int compareToIgnoreCase(String str) // 忽略字符大小写
例如 : String s1="this";
String s2="that";
System.out.println(s1.equals("This"));
System.out.println(s2.equalsIgnoreCase("This"));
System.out.println(s1.compareTo("That"));
System.out.println(s2.compareToIgnoreCase("That"));
String 类的方法
输出结果为:falsetrue320
String 类的方法
搜索(截取)字符:指一次取得一个字符串 中的某一个字符,通过 charAt 方法实现。 public char charAt(index) 例如: String message="Welcome to java" ; message.charAt(0);
结果为:'W'
取得字符串中指定的字符, index 的范围是从 0 到字符串的长度减 1 。
修改字符串 :用 replace() 方法,它负责把一个字符替换成为另外一个字符。例如: String message="Welcome to jaua" ; System.out.println(message.replace('u', 'v'));
System.out.println(message.replace('a', 'e'));
String 类的方法
输出的结果为:Welcome to javaWelcome to jeve
String 类的方法
表 8-1 String 类的其它部分方法方 法 含 义
indexOf()
toLowerCase()
toUpperCase()
valueOf()
检查某个字符或字符串出现在何处将整个字符串中的大写字符全改为小写字符将整个字符串中的小写字符全改为大写字符取得各类型数据的字符串表示式
17
使用 StringBuffer 类 StringBuffer 类的字符串内容是“可改变
的”,可以直接改变字符串本身,而不是像 String 类那样产生另一个新的对象实例作为字符串处理的结果。
StringBuffer 类不提供一般性的字符串处理方法,而是提供了有关字符串的改变、增长和插入……等和 String 类不同的方法。
把字符串添加到缓冲区:对于字符串缓冲区,可以其末尾追加新内容。 public StringBuffer append( 数据类型 )
把字符串插入到缓冲区 :在指定位置插入新内容的方法 。 public StringBuffer insert( 插入位置,数据类
型 ) 其中插入位置参数一定大于等 0 注意:每个字符串缓冲区都有一个容量。如果
超过它的容量,缓冲区会自动加大,以存放新加的字符。
StringBuffer 类的方法
数据类型是指除 byte 类型外的所有类型。
从缓冲区中获取字符:这个方法返回字符串缓冲区中指定位置的字符。 public char charAt(int index)
字符串缓冲区的下标从 0 开始。
求缓冲区容量和字符串: 求容量: public int capacity(),返回字符串缓冲区
的当前容量。(容量是指可以存入字符串缓冲区的字符数)
输出字符串内容: public String toString() ,返回与所引用对象相等的 String。
StringBuffer 类的方法
修改缓冲区中字符串 public StringBuffer delete(int start ,int end) :删除
从 start 开始到 end 为止的子串 public StringBuffer deleteCharAt(int index) :删除 i
ndex 所指定位置上的字符。 public StringBuffer replace(int start,int end,String st
r):用子串 str 替换从 start 开始到 end 为止的子串。 StringBuffer reverse() :反转字符串缓冲区的字符串。
public void setCharAt(int index,char ch) :将字符串
缓冲区指定位置的字符设置为 ch 。
StringBuffer 类的方法
StringBuffer strBuf=new StringBuffer("Welcome to java");
strBuf=strBuf.delete(11,14);strBuf=strBuf.deleteCharAt(8);strBuf=strBuf.insert(8, "o");strBuf=strBuf.append("html");strBuf=strBuf.setCharAt(8, 't');strBuf=strBuf.replace(0,1, "We");strBuf=strBuf.reverse();
StringBuffer 类的方法StringBuffer 类几个方法的例子语句段:
结果:
结果为:Welcome to Welcome oWelcome ooWelcome oo htmlWelcome to htmlWe Welcome to htmlLmth ot emocleW eW