Jul 27
Java平台包含三个用于字符数据处理的类。
1)Character:该类的实例可以包含单个字符值,也可以用于操作和检查单字符数据的简便方法。
2)String:该类用于处理由多个字符组成的不可改变的数据。
3)StringBuffer:该类用于存储和操作由多个字符组成的可改变的数据。
Sting类提供了好几个不同的构造器,允许使用不同的数据源提供字符串初始值。
1 2 3 4 5 6 7 8 9 | String();//创建空字符串 String(byte[]);//创建字符串,其值由一个字节数组的内容设置 String(byte[],int,int);//参数表示字节数组的偏移量和长度 String(byte[],int,int,String);//String参数指定将字节转换成字符所用的字符编码 String(byte[],String); String(char[]); String(char[],int,int); String(String);//不建议使用这种具有字符串直接值参数的构造器,它创建了两个相同的字符串 String(StringBuffer);//由字符串缓冲区设定其值 |
StringBuffer类的构造器。
1 2 3 | StringBuffer //创建一个空的字符串缓冲区,默认容量为16个字符 StringBuffer(int) //int为指定的初时容量 StringBuffer(String) //其值由String初始化,容量为原始字符串的长度加16 |
字符串或字符串缓冲区的长度。
1 2 3 | String.length();//得到字符串的长度 StringBuffer.length(); StringBuffer.capacity();//得到字符串缓冲区的容量 |
字符串没有capacity方法!
截取字符串的方法
1 2 | String substring(int);//从int开始到字符串结尾的子字符串 String substring(int,int);//截取指定位置间的字符串 |
注意:字符串索引是从0,而不是1开始的。
搜索字符或字符串地方法
1 2 3 4 5 6 7 8 | int indexOf(int);//返回指定的字符第一次出现的位置的索引 int lastindexOf(int);//最后一次出现的位置索引 int indexOf(int,int);//从指定的索引位置开始向前搜索,返回指定字符第一次出现位置的索引 int lastindexOf(int,int);//向后搜索,最后一次出现的位置的索引 int indexOf(String); int lastindexOf(String); int indexOf(String,int); int lastindexOf(String,int) |
StringBuffer类不支持indexOf和lastindexOf方法,需要的话,要先用toString将StringBuffer转成String类
比较字符串和部分字符串
1 2 3 4 5 6 7 8 9 10 | boolean endsWith(String);//判断字符串是否以指定的字符串结尾 boolean startsWith(String); boolean startsWith(String,int);//从指定位置开始判断 int compareTo(String);//按字典排次序比较两个字符串,并返回大于(>0)、等于(=0)、小于(<0) int compareTo(Object);//比较前Object参数被转换为字符串 int compareToIgnoreCase(String);//忽略大小写的比较 boolean equals(Object);//比较是否相等 boolean equalsIgnoreCase(String); boolean regionMatches(int,String,int,int); boolean regionMatches(boolean,int,string,int,int);//检查字符串是否匹配String参数的指定部分,第一个int表示从字符串的索引位置,第二个int表示偏移量,第三个int表示偏移长度 |
操作字符串。因为字符串是不能被修改的,所以这些方法实际上是创建并返回包含结果的第二个字符串。
1 2 3 4 5 | String concat(String);//将String参数连接到资格字符串的末尾。 String replace(char,char);//将第一个参数指定的字符替换为第二个参数指定的字符。 String trim(); STring toLowerCase(); String toUpperCase(); |
修改字符串缓冲区
1 2 3 4 5 6 7 | tringBuffer append(boolean;char;char[];char[],int,int;double;float;int;long;Object;String);//将参数附加到字符缓冲区。在进行附加操作前,数据被转化成字符串 StringBuffer delete(int,int);//删除这个字符串缓冲区中的指定字符 StringBuffer deelteCharAt(int); StringBuffer insert(int, boolean;char;char[];char[],int,int;double;float;int;long;Object;String);// 将第二个参数插入字符缓冲区。第一个整数参数指定一个索引,数据被插入到此索引之前。 StringBuffer replace(int,int,String);//替换指定的字符 void setCharAt(int,char); StringBuffer reverse();//反转这个字符串缓冲区中字符的次序 |
字符串和编译器
把在双引号之间指定的部分称为字符串直接值,以下情况可以直接使用字符串直接值:
1 2 3 4 5 6 7 8 | //任何应该使用String对象的地方使用字符串直接值,如System.out.pringln接受一个String参数 System.out.println("It is an example"); //可以直接从字符串直接值调用String的方法 int len = "hello, dude".length(); //用字符串直接值初始化一个字符串,编译器此时会自动创建一个新的String对象 String s = "Hola Mundo"; //使用+连接字符串 String cat ="cat"; System.out.println("con" + cat + "enation"); |
March 15th, 2008 at 5:46 pm
good