黑马程序员之String,StringBuffer,StringBuider

来源:互联网 发布:帝国cms修改栏目目录 编辑:程序博客网 时间:2024/06/06 04:04

String

------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------


Stringjava.lang包中

String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。


字符串是常量;它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为 String 对象是不可变的,所以可以共享。


例如: 

     String str = "abc"; 


等效于: 

     char data[] = {'a', 'b', 'c'};     String str = new String(data);

 

String 类包括的方法可用于检查序列的单个字符、比较字符串、搜索字符串、提取子字符串、创建字符串副本并将所有字符全部转换为大写或小写。


String常见的方法

char charAt(int index) 返回指定索引处的 char 值。

boolean startsWith( String prefix) 测试此字符串是否以指定的前缀开始。

int compareTo(String anotherString

String concat(String str) 将指定字符串连接到此字符串的结尾。

boolean contains(CharSequence s)当且仅当此字符串包含指定的 char 值序列时,返回 true

boolean endsWith(String suffix) 测试此字符串是否以指定的后缀结束。

Boolean equals(Object anObject) 将此字符串与指定的对象比较

byte[]  getBytes() 使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。

Int  hashCode() 返回此字符串的哈希码。

Int  length() 返回此字符串的长度

String substring(int beginIndex) 返回一个新的字符串,它是此字符串的一个子字符串

String  replace(char oldChar, char newChar) 返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。

String[]   split(String regex) 根据给定正则表达式的匹配拆分此字符串。

StringBuffer类

线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。


 StringBuffer 是可变的字符串StringBuffer进行操作,是在原来的对象之上进行改变StringBuffer是一个可变对象,当对他进行修改的时候不会像String那样重新建立对象 它只能通过构造函数来建立。


StringBuffer sb = new StringBuffer(); 


注意:不能通过付值符号对他进行付值.


sb = "welcome to here!";//这样是错误的

 

对象被建立以后,在内存中就会分配内存空间,并初始保存一个null.StringBuffer 中付值的时候可以通过它的append方法.

 

sb.append("hello");


在操作字符串连接操作中StringBuffer的效率要比String:


String str = new String("welcome to "); 

str += "here"; 


以上的处理步骤实际上是通过建立一个StringBuffer,然后调用append(),最后 再将StringBuffer toSting(); 这样的话String的连接操作就比StringBuffer多出了一些附加操作,当然效率上要打折扣.

 并且由于String 对象是不可变对象,每次操作Sting 都会重新建立新的对象来保存新的值这样原来的对象就没用了,就要被垃圾回收.这也是要影响性能的.

 

 

StringBuffer的常见方法

append()  将 boolean 参数的字符串表示形式追加到序列

length()  返回长度(字符数)

reverse  将此字符序列用其反转形式取代

delete(int start, int end) 移除此序列的子字符串中的字符

 

 StringBuilder类

StringBuiderStringBuffer用法基本一致,可变的Unicode字符序列,操作同StringBuffer,至是不支持并发操作,非线程安全。

 

0 0