第五章 数组与字符串 联系客服

发布时间 : 星期三 文章第五章 数组与字符串更新完毕开始阅读

Java程序设计入门与精通

System.out.println(\:\System.out.println(strC.startsWith(strA));

System.out.println(strC.startsWith(\是学生\ \是学生\

}

}

程序运行结果如图5-20:

图5-20 例5-11程序运行结果图

分析:因为\小于\他们是学生\,所以strA.compareTo(strB)结果小于0;而\他们是学生\大于 \他们是学生\,故strB.compareTo(strC)结果大于0。另外,strA.substring(6,12)的结果为\,表明参数6是指字符串的index序号,实际上是从该字符串的第6+1个字符开始取到第12个字符为止。

5.查找与替换的方法 (1)charAt()

形式为:char charAt(int index)

该方法返回字符串中第index个字符。注意,字符串中第一个字符的index取值是0,第二个字符的index取值是1,依次类推,最后一个字符的index的取值是length()-1。

(2)indexOf()与lastIndexOf()

字符串中单个字符的查找有indexOf()与lastIndexOf()方法,形式有: int indexOf(int ch)

int indexOf(int ch, int pos) int lastIndexOf(int ch)

int lastIndexOf(int ch, int pos)

方法indexOf()返回字符ch在字符串中第一次出现的位臵,如果在整个字符串中没有找到字符ch,则返回-1。当它带有pos参数时,意味着比较位臵是从pos位臵开始向后进行的。 方法lastIndexOf()的功能和indexOf()方法的功能类似,不同的地方在于该方法从字符串的末尾位臵(或pos位臵)向前查找,返回的仍然是字符ch在字符串最早出现的位臵。

(3)replace()

87

第五章 数组和字符串

字符串中字符、子字符串的替换用replace()方法,形式有: String replace(char oldChar,char newChar) String replaceFirst(String srt1, String srt2) String replaceAll(String srt1, String srt2)

方法replace()用字符newChar替换当前字符串中所有的字符oldChar。

方法replaceFirst()用字符串srt2的内容替换当前字符串中遇到的第一个srt1子串。 方法replaceAll()用字符串srt2的内容替换当前字符串中遇到的所有srt1子串。 【例5-12】求每一个位臵上的字符与字符替换示例 设计思路:

利用s.length()求出s串的串长,通过s.charAt(i)取出位臵i上的字符,配合循环即可求每一个位臵上的字符。通过不同的replace方法,可实现不同的替换效果。

代码:

//charAtOp.java

//求字符串的长度及每一个位臵上的字符 public class charAtOp{ }

public static void main(String args[]){ }

String s=\你好!\int l=s.length();

System.out.println(\字符串s为:\

System.out.println(\字符串s的长度为:\for (int i=0;i

char c=s.charAt(i);

System.out.println(\中的第\个字符是:\

String s0=\学生, I am a 男生。\String s1=s0.replace(' ','_');

String s2=s0.replaceFirst(\String s3=s0.replaceAll(\我是\System.out.println(\System.out.println(\System.out.println(\System.out.println(\

程序运行结果如图5-21:

88

Java程序设计入门与精通

图5-21 例5-12程序运行结果图

6.转换与去除多余空格方法

(1)toLowerCase()与toUpperCase()

字符串中字符大小写的转换,可以利用toLowerCase()与toUpperCase()方法,形式为:

String toLowerCase() //将字符串中所有字符转换成小写。

String toUpperCase() //将字符串中所有字符转换成大写。 例如:

String str1= \String str2= \

(2)trim()

要去除字符串中多余的空格,可使用trim()方法,形式为:

String trim() //去掉字符串中开头和结尾的空格。但字符串中间的空格保留。 例如:

String str=\ I am a student \

5.2.2 字符串变量与StringBuffer类

String类型的字符串一旦创建之后,其长度和内容就不再改变,这也是称其为字符串常量的原因。相反,与之对等的StringBuffer类表示了可以扩充、可以修改的字符串,或称为字符串变量。

1.创建StringBuffer类对象

由于每一个StringBuffer类对象都是可以扩充和修改的字符串变量,所以,在创建

89

第五章 数组和字符串

StringBuffer类对象时,并不一定要给出字符串初值。以下是常用的StringBuffer类构造方法:

(1)public StringBuffer()

构造一个空字符串,长度为16。 (2)public StringBuffer(int length)

构造一个长度为length的空字符串的缓冲区。 (3)public StringBuffer(String str) 构造一个内容为str的字符串。

2.StringBuffer类对象的常用操作及方法

(1)分配/获取字符串的长度 void setLength(int newLength) int length()

(2)分配/获取字符串的容量

void ensureCapacity(int minCapacity) int capacity() (3)字符串的检索和子串

void getChars(int srcBegin,int srcEnd,char[] dst,int dstBegin)

从当前字符串中取出从srcBegin位臵起至srcEnd -1止的子字符串。存储到dst数组中自dstBegin位臵开始的空间中。

String substring(int begpos)

从当前字符串中取出从begpos位臵起至末尾的子字符串。

String substring(int begpos, int endpos)

从当前字符串中取出从begpos位臵起至endpos-1止的子字符串。 (4)StringBuffer类对象的扩充与字符串类型转换

StringBuffer类提供两组方法用来扩充StringBuffer对象所包含的字符,并在扩充的同时进行字符串类型转换。它们分别是:

① public StringBuffer append(Object obj)

append方法将指定的参数对象转化为字符串后,将其附加在原来的StringBuffer对象之后,并返回新的StringBuffer对象。附加的的参数对象可以是各种数据类型的,如int、char、String、double等。

② public StringBuffer insert(int 插入位臵,参数对象类型,参数对象名)

该方法将指定的参数对象转化为字符串后,将其插入在原来的StringBuffer对象中指定的位臵,并返回新的StringBuffer对象。

【例5-13】StringBuffe类字符串常用操作示例1

设计思路:

通过对append方法和insert方法的调用,示例StringBuffer类字符串的扩充与类型转换。还示例了length与capacity的不同。

代码:

90