字符串的常见操作

 

String对象的初始化

                            String s = “abc”;

或:

             String s = new String(“abc”);

s = new String(“Java语言”);

equals()方法:

public boolean equals(Object anObject)

{

       //如果是同一个对象     

        if (this == anObject)

        {

            return true;  

        }         //如果传递进来的参数是String类的实例

        if (anObject instanceof String)  

       {

             String anotherString = (String)anObject;  

             int n = count;//字符串长度       

             if (n == anotherString.count) //如果长度相等就进行比较     

            {  

                  char v1[] = value;//取每一个位置的字符          

                  char v2[] = anotherString.value;              

                  int i = offset;            

                  int j = anotherString.offset;        

                  while (n-- != 0) //对于每一位置逐一比较        

                 {

                         if (v1[i++] != v2[j++])

                         return false;   

                 }    

                  return true;    

           }     

    }    

     return false;

}

length()

length() //方法,返回当前字符串的长度

 

charAt()

public char charAt(int index) 返回指定索引处的 char 值。索引范围为从 到 length() - 1。序列的第一个 char 值在索引 处,第二个在索引 处,依此类推,这类似于数组索引。 如果索引指定的 char 值是代理项,则返回代理项值。

指定者: 接口 CharSequence 中的 charAt 参数: index - char 值的索引。

返回: 此字符串指定索引处的 char 值。第一个 char 值在索引 处。

抛出: IndexOutOfBoundsException - 如果 index 参数为负或小于此字符串的长度。

 

 

string类的替换函数

string &replace(int p0, int n0,const char *s);//删除从p0开始的n0个字符,然后在p0处插入串s

string &replace(int p0, int n0,const char *s, int n);//删除p0开始的n0个字符,然后在p0处插入字符串s的前n个字符

string &replace(int p0, int n0,const string &s);//删除从p0开始的n0个字符,然后在p0处插入串s

string &replace(int p0, int n0,const string &s, int pos, int n);//删除p0开始的n0个字符,然后在p0处插入串s中从pos开始的n个字符

string &replace(int p0, int n0,int n, char c);//删除p0开始的n0个字符,然后在p0处插入n个字符c

string &replace(iterator first0, iterator last0,const char *s);//[first0last0)之间的部分替换为字符串s

string &replace(iterator first0, iterator last0,const char *s, int n);//[first0last0)之间的部分替换为s的前n个字符

string &replace(iterator first0, iterator last0,const string &s);//[first0last0)之间的部分替换为串s

string &replace(iterator first0, iterator last0,int n, char c);//[first0last0)之间的部分替换为n个字符c

string &replace(iterator first0, iterator last0,const_iterator first, const_iterator last);//[first0last0)之间的部分替换成[firstlast)之间的字符串

getChars()

getChars(int srcBegin,int srcEnd,char[] dst,int dstBegin)将字符从此字符串复制到目标字符数组。 

例如: String str = "abcdefghikl"; Char[] ch = new char[8]; str.getChars(2,5,ch,0);

就是从str的第二个字母开始一直复制到第五个,一共是3个字符,ch的第一个开始接受.

 

toUpperCase()

toUpperCase的意思是将所有的英文字符转换为大写字母.

如:String  cc = “aBc123”.toUpperCase();

结果就是:ABC123

toLowerCase

toLowerCase的意思是将所有的英文字符转换为小写字母

如:String  cc = “aBc”.toUpperCase();

结果就是:abc123

备注:这两个方法只对英文字母有效,对除了A~Za~z的其余字符无任何效果。

trim()

Trim()是去两边空格的方法

toCharArray()

toCharArray()的用法:将字符串对象中的字符转换为一个字符数组

例如:

String myString="abcd";

char myChar[]=myString.toCharArray();

System.out.println("myChar[1]="+myChar[1]);

输出结果:

myChar[1]=b

 

charAt方法

例:         String s = “abc”;

         char c = s.chatAt(0);

则变量c的值是’a’。

compareTo方法

该方法的作用是比较两个字符串的大小,比较的原理是依次比较每个字符的字符编码。首先比较两个字符串的第一个字符,如果第一个字符串的字符编码大于第二个的字符串的字符编码,则返回大于0的值,如果小于则返回小于0的值,如果相等则比较后续的字符,如果两个字符串中的字符编码完全相同则返回0。

                            例如:

                                     String s = “abc”;

                                     String s1 = “abd”;

                                     int value = s.compareTo(s1);

                            则value的值是小于0的值,即-1。

 compareToIgnoreCase,这个方法是忽略字符的大小写进行比较,比较的规则和compareTo一样。

concat方法

该方法的作用是进行字符串的连接,将两个字符串连接以后形成一个新的字符串。例如:

                                     String s = “abc”;

                                     String s1 = “def”;

                                     String s2 = s.concat(s1);

而且可以连接多个字符串:

                                     String s = “abc”;

                                     String s1 = “def”;

                                     String s2 = “1234”;

         String s3 = s.concat(s1).concat(s2);

则生成的新字符串s3的值为”abcdef1234”。

值得注意的是:

+也是可以起到连接字符的作用的:

         String s = “abc” + “1234”;

s的值是”abc1234。

但如果两边连接的内容都是基本数字类型则按照加法运算。

endsWith方法

该方法的作用是判断字符串是否以某个字符串结尾,如果以对应的字符串结尾,则返回true。

例如:

         String s = “student.doc”;

         boolean b = s.endsWith(“doc”);

则变量b的值是true

getBytes方法

该方法的作用是将字符串转换为对应的byte数组,从而便于数据的存储和传输。例如:

         String s = “计算机”;

         byte[] b = s.getBytes();   //使用本机默认的字符串转换为byte数组

         byte[] b = s.getBytes(“gb2312”); //使用gb2312字符集转换为byte数组

                 要注意字符集的问题,否则中文在转换时将会出现问题。

indexOf方法

该方法的作用是查找特定字符或字符串在当前字符串中的起始位置,如果不存在则返回-1。例如:

                                     String s = “abcded”;

                                     int index = s.indexOf(‘d’);

                                    则:index的值为3

                        也可以从特定位置以后查找对应的字符,例如:

                                     int index = s.indexOf(‘d’,4);

另外一个类似的方法是lastIndexOf方法,其作用是从字符串的末尾开始向前查找第一次出现的规定的字符或字符串,例如:

                                     String s = “abcded”;

                                     int index = s. lastIndexOf(‘d’);

                            则index的值是5。

split方法

该方法的作用是以特定的字符串作为间隔,拆分当前字符串的内容,一般拆分以后会获得一个字符串数组。例如:

         String s = “ab,12,df”;

         String s1[] = s.split(“,”);

该代码的作用是以字符串”,”作为间隔,拆分字符串s,从而得到拆分以后的字符串数字s1,其内容为:{“ab”,”12”,”df”}。

如果需要限定拆分以后的字符串数量,则可以使用另外一个split方法,例如:

         String s = “abcbtb1”;

         String s1[] = s.split(“b”,2);

该代码的作用是将字符串s最多拆分成包含2个字符串数组。则结果为:{“a”,”cbtb1”}。

         如果第二个参数为负数,则拆分出尽可能多的字符串,包括尾部的空字符串也将被保留。

startsWith方法

该方法的作用和endsWith方法类似,只是该方法是判断字符串是否以某个字符串作为开始。例如:

         String s = “TestGame”;

         boolean b = s.startsWith(“Test”);

则变量b的值是true。

valueOf方法

该方法的作用是将其它类型的数据转换为字符串类型。需要注意的是,基本数据和字符串对象之间不能使用以前的强制类型转换的语法进行转换。

例如:

         int n = 10;

         String s = String.valueOf(n);

 

 

 

posted @ 2015-10-21 20:58  木子金帛  阅读(188)  评论(0编辑  收藏  举报