String、StringBuffer、StringBuilder类
String、StringBuffer、StringBuilder類:java提供了string、stringbuffer兩個類來封裝字符串,并提供了一系列方法來操作字符串對象。
String類是不可變的類,一旦一個string對象被創建之后,包含在這個對象的字符序列式不可變的。
StringBuffer則代表一個字符序列可變的字符串,通過StringBuffer提供的append、insert、reverse等方法可以改變這個字符串對象的字符序列。
StringBuilder類:和StringBuffer基本相似,不同的是,StringBuffer是線程安全的,而StringBuilder則沒有實現線程安全功能,所以性能略高。
String類提供了大量構造器來創建對象,其中如下幾個有特殊用途:
1、String():創建一個包含0個字符串序列的string對象(并不是返回null)
2、String(byte[] bytes,Charset charset):使用指定的字符集將指定的byte數組解碼成一個新的String對象。
3、String(byte[] bytes,int offset,int lengh):使用平臺的默認字符集將指定byte數組的offset開始,長度為length的子數組解碼成一個新的String對象。
4、String(byte[] bytes,int offset,int lengh,String chasetName):使用指定的字符集將指定byte數組的offset開始,長度為length的子數組解碼成一個新的String對象。
5、String(byte[] bytes,String chasetName):使用指定的字符集將指定的byte數組解碼成一個新的String對象。
6、String(chasr[] value,int offset,int count):將指定字符串數組從offset開始,長度為length的子數組中的字符串連綴成字符串。
7、String(String original):根據字符串直接量來創建一個string對象。
8、String(StringBuffer buffer):根據StringBuffer對象來創建對應的string對象。
9、String(StringBuilder builder):根據StringBuilder對象來創建對應的string對象。
下面是對字符串進行操作的方法:
1、char [] charAt(int index):取字符串中指定位置的字符。
2、int compareTo(String anotherString):拿當前對象和anotherString比較,如果兩個字符串序列相等則返回0,;不相等時,從兩個字符串第0個字符串開始比較,返回第一個不相等的字符差,另一種情況是,較長字符串的前面部分剛好是較短的字符串,返回它們的長度差。
3、String concat(String str):將該string對象與str連接在一起,與字符串連接運算符 + 功能相同。
4、boolean contenEquals(StringBuffer sb):將該string對象與sb進行比較,若它們包含的字符序列相同則返回true。
5、static String copyValueOf(char[] data):將字符數組連綴成字符串。
6、static String copyValueOf(char[] data,int offset,int count):將char數組的子數組中的元素連綴成字符串。
7、boolean endsWith(String aabb):返回該對象是否以aabb結尾。
8、boolean equals(Object obj):將字符串與指定對象比較。
9、boolean equalsIgnoreCase(String str):與前一個方法相同,只是忽略大小寫。
10、byte[] getBytes():將該string對象轉換成byte數組。
11、void getChars(int srcBegin,int srcEnd,char[] det,int detBegin):該方法將字符串中從srcBegin開始,到srcEnd結束的字符復制到dst字符數組中,其中detBegin為目標字符數組的起始復制位置。
12、等等。。。。。
"hello"和new String("hello")的區別:
常量池指的是在編譯期被確定、并被保存在已編譯的.class文件中的一些數據,包括關于類、方法、接口中的常量和字符串常量。
String a=”ab”;
String b=”cd”;
String c=”abcd”;
String d=”ab”+”cd”;
String e=a+b;
String f=new string (“ab”);
c==d(√)?????
f==a(×)
c==e(×)——>e指向的是a、b的復合地址,c和d指向的是“abcd”的地址.
java會確保每個字符串常量只有一個,不會產生對個副本
轉載于:https://www.cnblogs.com/wyl-study/archive/2012/02/20/2358900.html
總結
以上是生活随笔為你收集整理的String、StringBuffer、StringBuilder类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: lucene Field部分参数设置含义
- 下一篇: 如何办理ETC(怎样办理ETC)