第十章 字符串
1.string类提供了9个构造函数,以便使用各种方式初始化string对象。其中的7个如下:
s1=new string();//无参数构造函数;
s2=new string(s);//参数为字符串的构造函数;
s3=new string(chararray);//参数为字符数组的函数;
s4=new string(chararray,6,3);//参数为字符数组并拷贝以第二个参数为起始位置,第三个参//数为拷贝字符数目作为初始值;
s5=new string(bytearray,4,4);//参数为比特数组并拷贝以第二个参数为起始位置,第三个参数为拷贝字符数目作为初始值;
s6=new string(bytearray);//参数为比特数组;
s7=new string(buffer);//参数为stringbuffer;
2.charat方法返回string中指定位置的字符。如:string1.charat(i); getchars方法取string的某一子串。如:string1.getchars(0,5,chararray,0);第一个参数为被拷贝字符串中的起始拷贝的下标,第二个参数是被拷贝字符的数目,第三个参数为目标字符数组,第四个参数为拷贝的字符放在字符数组中的起始下标。
3.字符串的比较:equals,equalsignorecase,compareto和reginmathes,其中equalsignorecase将忽略大小写;compareto返回0时表示两个字符串相等,返回-1表示调用此方法的字符串小于比较的字符串,返回1则相反;reginmathes方法比较两个字符串对象的一部分是否相等,如:string1.regionmatches(0,s1,0,5);第一个参数是调用此方法的字符串的起始下标,第二个参数是要比较的字符串,第三个参数是要比较字符串中的起始下标,第四个参数是要比较的字符的个数。只有当指定个数的字符在按字典中发比较都相同时,才返回true。
在使用“==“比较引用时,如果两个引用指向内存中的同一个对象,则结果为true;而在比较基本数据类型的指时,如果两个值相同,则结果为true。
4.string类的startswith和endswith方法用于测试数组的元素是否以某些字符开始或结尾。如:string[i].startswith(“st”); string[i].startswith(“art”,2)判断strings中第i个字符串从下标2开始的子串是否以字符“art”开始;string[i].endswith(“ed”);
5.indexof方法在字符串中定位字符和子串,如:string1.indexof(‘c’);string1.indexof(‘a’,1);
其中第二个参数是在字符串中开始查找的起始下标。
6.substring方法用于从字符串中抽取子串,它有两种形式,如string1.substring(20),其中20是拷贝子串在源字符串中的起始下标;string1.substring(0,6);第一个参数指定在源字符串中需拷贝的起始下标,第二个参数指定拷贝的字符数目。
7.string类的其他方法:s1.concat(s2);字符串s1连接s2,并不改变s1,s2;
s1.replace(‘l’,’l’);替换s1中所有的l为l;
s1.touppercase(); s1.tolowercase();分别转换为大写小写;
s1.trim(); 删除s1开头和末尾的空白字符;
s1.valueof(l);可以使用多种类型的参数,并将多种类型的参数转换为字符串;
8.string类的intern方法可以改善字符串比较的性能,在第一次对某个string对象调用string
类的intern方法时,它将返回一个指向内存中该string对象的引用。当下次对与原string对象内容相同的不同string对象进行intern调用时,将产生对原string对象的多个引用。这样就可以进行高效的大型字符串的比较。一旦调用过intern方法,就可以用==比较string引用,而不必使用string类的equals等比较方法。
9.stringbuffer类,它可以创建和操纵动态字符串,即可以修改字符串,每个stringbuffer都能够存贮由它的容量所指定的一些字符,如果超过了stringbuffer的容量,容量则会自动扩大以容纳多出来的字符。它的构造函数由3种:buf1=new stringbuffer(); buf2=new stringbuff(6);其中6为初始容量;buf3=new stringbuffer(“hello”);
10.stringbuffer类的capacity方法返回它不另外分配空间可以存储的字符数。注意:带一个字符串参数的stringbuffer构造函数创建的stringbuffer对象的初始容量为参数字符串的长度加16。如:buf=new stringbuffer(“hello,how are you?”);返回的capacity为35。
buf.setlength(10);方法将stringbuffer的长度设置为10,如果指定的长度比当前的字符数目少,则超过指定长度的字符都将被舍弃;如果比当前字符数目多,则添加空字符至指定长度。
buf.ensurecapacity(75);将扩充stringbuffer的容量为至少75个字符。
buf.reverse();将倒置buf中的字符;
buf.append(b);将多种类型的数据的值添加到stringbuffer的末尾;实际上编译器用它实现了用于连接字符串的“+”和“+=”运算符。
buf.insert(0,b); 方法用于将多种类型的数据插入到stringbuffer中第一个参数指定的参数之前。
buf.delete(2,6);方法将删除以第一个参数为起始下标,第二个参数为字符数目的子串。
11.character类的部分方法:
character.isdefined(c);判断字符c在unicode字符集中是否被定义,如果是则返回true,否则返回false;
character.isjavaidentifierpart(c);判断字符c是否能当作java标识符的一部分;
charater.fordigit(digit,radix);把整数digit转换为由整数radix(基数)指定的数制系统中相应的字符。如:charater.fodigit(13,16)则返回d;
12.stringtokenizer类将字符串分解成组成字符串的语言符号,它的方法couttokens返回语句符号化的字符串中含有的语句符号的个数;hasmoretokens方法判断是否还有语言符号;
nexttoken调用字符串的形式返回下一个语言符号。
闽公网安备 35060202000074号