黑马程序员--String

来源:互联网 发布:怎样帮淘宝刷好评挣钱 编辑:程序博客网 时间:2024/06/07 04:09

---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------
首先,应注意的是字符串是个对象,一旦被初始化就不能改变
eg:String s1 =“abc”;
s1 = “bcd“;
注意:这时候是s1的指向变了,但是对象”abc”没变。
字符串常见操作
1,获取。
         1.1字符串中的包含的字符数,也就是字符串的长度。
                   intlength():获取长度。(数组的是length)
         1.2根据位置获取位置上某个字符。
                   charcharAt(int index):
         1.3根据字符获取该字符在字符串中位置。
                   intindexOf(int ch):返回的是ch在字符串中第一次出现的位置。
                   intindexOf(int ch, int fromIndex) :从fromIndex指定位置开始,获取ch在字符串中出现的位置。
                   intindexOf(String str):返回的是str在字符串中第一次出现的位置。
                   intindexOf(String str, int fromIndex) :从fromIndex指定位置开始,获取str在字符串中出现的位置
                   intlastIndexOf(int ch):
2,判断。
         2.1字符串中是否包含某一个子串。
                   booleancontains(str):
                   特殊之处:indexOf(str):可以索引str第一次出现位置,如果返回-1.表示该str不在字符串中存在。
                                    所以,也可以用于对指定判断是否包含。
                                     if(str.indexOf("aa")!=-1)
 
                                    而且该方法即可以判断,有可以获取出现的位置。
 
         2.2字符中是否有内容。
                   booleanisEmpty():原理就是判断长度是否为0.
         2.3字符串是否是以指定内容开头。
                   booleanstartsWith(str);
         2.4字符串是否是以指定内容结尾。
                   booleanendsWith(str);
         2.5判断字符串内容是否相同。复写了Object类中的equals方法。
                   booleanequals(str);
         2.6判断内容是否相同,并忽略大小写。
                   booleanequalsIgnoreCase();
        
3,转换
         3.1将字符数组转成字符串。
                   构造函数:String(char[])
                                       String(char[],offset,count):将字符数组中的一部分转成字符串。
                   静态方法:
                                     staticString copyValueOf(char[]);
                                     staticString copyValueOf(char[] data, int offset, int count);
                                     staticString valueOf(char[]):
 
                  
         3.2将字符串转成字符数组。
                   char[]toCharArray():
 
         3.3将字节数组转成字符串。
                            String(byte[])
                            String(byte[],offset,count):将字节数组中的一部分转成字符串。
 
         3.4将字符串转成字节数组。
                            byte[]  getBytes():
         3.5将基本数据类型转成字符串。
                   staticString valueOf(int)
                   staticString valueOf(double)
 
                   //3+"";//String.valueOf(3);
 
                   特殊:字符串和字节数组在转换过程中,是可以指定编码表的。
 
4,替换
         Stringreplace(oldchar,newchar);
 
5,切割
         String[]split(regex);
 
6,子串。获取字符串中的一部分。
         Stringsubstring(begin);
         Stringsubstring(begin,end);
 
7,转换,去除空格,比较。
         7.1将字符串转成大写或则小写。
                    String toUpperCase();
                    String toLowerCase();
 
         7.2将字符串两端的多个空格去除。
                   Stringtrim();
 
         7.3对两个字符串进行自然顺序的比较。
                   intcompareTo(string);
StringBuffer字符串容器
容器的操作:CEUD
可以通过容器对字符串进行改变。
容器中存放的也是对象的地址,所以通过对象给对象赋值时二者是相等的
1,存储。
         StringBufferappend():将指定数据作为参数添加到已有数据结尾处。
         StringBufferinsert(index,数据):可以将数据插入到指定index位置。
2,删除。
         StringBufferdelete(start,end):删除缓冲区中的数据,包含start,不包含end。
         StringBufferdeleteCharAt(index):删除指定位置的字符。
3,获取。
         charcharAt(int index)
         intindexOf(String str)
         intlastIndexOf(String str)
         intlength()
         Stringsubstring(int start, int end) //含头不含尾
4,修改。
         StringBufferreplace(start,end,string);
         voidsetCharAt(int index, char ch) ;
5,反转。
         StringBufferreverse();
6将缓冲区中指定数据存储到指定字符数组中。
         voidgetChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
JDK1.5 版本之后出现了StringBuilder.
StringBuffer是线程同步。
StringBuilder是线程不同步。
 
以后开发,建议使用StringBuilder
升级三个因素:
1,提高效率。
2,简化书写。
3,提高安全性。
 
基本数据类型包装类:
1.实现了基本数据类型与字符串之间的相互转换:
基本数据类型转化成字符串:
Eg:IInteger.toString(34);//将34整数变成"34";
字符串变基本数据类型:
Eg: double b =Double.parseDouble("12.23");
其他数据类型转换的时候格式一致只是数据类型变化下。
2.进制间的转换
 
十进制转成其他进制。
         toBinaryString();
         toHexString();
         toOctalString();
其他进制转成十进制。
         parseInt(string,radix);
基本数据类型包装类对象的1.5新特性:
1.自动拆装箱:
Eg:
Integer x = 4;//自动装箱。//new Integer(4)
 
x = x/* x.intValue() */ + 2;//x+2:x进行自动拆箱。变成成了int类型。和2进行加法运算。
                                               //再将和进行装箱赋给x。
注意:因为是对象所以可以为空:即Interger  x  =null;
2.享元模式:
Eg:
Integer m = 128;
Integer n = 128;
sop("m==n:"+(m==n));
Integer a = 127;
Integer b = 127;
sop("a==b:"+(a==b));//结果为true。因为a和b指向了同一个Integer对象。
                                                        //因为当数值在byte范围内容,对于新特性,如果该数值已经存在,则不会在开辟新的空间。
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net

原创粉丝点击