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