String和StringBuffer

String和StringBuffer都代表字符串,但是由于其内部实现的不同,String被看作为不可变字符串,而StringBuffer被看作为可变字符串。对于String的每次改变都会生成一个新的字符串(例如字符串的连接),比较耗费内存。而StringBuffer每次都是改变自身,不会产生新的对象,比较节约内存。

一、String

1、String对象的初始化。

简化语法:

String s = "abc";

s = "JAVA";


标准语法:

String s = new String("abc");

s = new String("JAVA");


PS:使用标准用法在内存上存在比较的消耗。例如String s= new String("abc");实际上创建了两个 String 对         象, 一个是” abc” 对象,存储在常量空间中, 一个是使用 new 关键字为对象 s 申请的空间。


    2、字符串常见操作:

1、char charAt(int index) 返回指定索引处的 char 值(索引值从0开始,以此类推)


2、 int compareTo(String anotherStirng)从字符串的第一个字符开始按照字符编码比较字符串大小


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

           其实在实际使用时, 语法上提供了一种更简单的形式, 就是使用“ +” 进行字符串的连接。 例如:


           String s = “abc” + “1234”;


PS:如果参与连接的内容有一个是字符串才按照字符串进行连接。

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


5、boolean equals(Object anObject) 将此字符串与指定的对象比较,相同则返回true,不同则返回false


6、getBytes() 该方法的作用是将字符串转换为对应的byte数组,从而便于数据的存储和传输


7、indexof() 该方法的作用是查找特定字符或字符串在当前字符串中的起始位置,如果不存在则返回-1.


8、length() 该方法的作用是返回字符串的长度,也就是返回字符串中的字符的个数(中文字符也是一个字符)


9、replce() 替换字符串中所有指定的字符,然后生成一个新的字符串。


10、以特定的字符串作为间隔,拆分当前字符串的内容,一般拆分以后获得一个字符串数组


11、startsWith 该方法的作用和endsWith方法类似,只是该方法是判断字符串是否以某个字符串作为开始


12、substring() 去字符串中的”子串“,所谓”子串“即字符串中的一部分。例如”23“是字符串”123“的子串


13、toCharArray() 和getBytes方法类似,即将字符串转换为对应的char数组。


14、trim() 去掉字符串开始和结尾的所有空格,然后形成一个新的字符串,该方法不去掉字符串中间的空格


15、valueOf() 将其它类型的数据转换为字符串类型。

            PS:基本数据和字符串对象之间不能使用强制类型转换的语法进行转换。



二、StringBuffer


   如果经常需要对一个字符串进行修改, 例如插入、删除等操作, 使用 StringBuffer 要更加适合一些。StringBuffer是线程安全的。

    1、StringBuffer对象的初始化。

StringBuffer s = new StringBuffer(); //初始化一个空的对象

                StringBuffer s = new StringBuffer("abc"); //初始化出 StringBuffer 对象的内容就是字符串” abc”


   PS:StringBuffer 和 String 属于不同的类型, 也不能直接进行强制类型转换,StringBuffer 对象和 String 对       象之间的互转的代码如下:

String s = “abc”;
StringBuffer sb1 = new StringBuffer(“123”);
StringBuffer sb2 = new StringBuffer(s); //String转换为StringBuffer
String s1 = sb1.toString(); //StringBuffer转换为String


  2、StringBuffer的常用方法:

1、append() 追加内容到当前StirngBuffer对象的末尾,类似于字符串的连接

2、deleteCharAt()删除指定位置的字符,然后将剩余的内容形成新的字符串

3、public StringBuffer delete(int start, int end) 删除指定区间以内的所有字符,包含start,不包含end索引的区间

4、insert() 在StringBuffer对象中插入内容,然后形成新的字符串

5、reverse() 将StringBuffer对象中的内容反转,然后形成新的字符串

6、trimToSize() 将StringBuffer










 

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shihuai789/article/details/48242541
文章标签: string stringbuffer
个人分类: JAVA
上一篇this和super
下一篇List Set Map
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭