Java笔记:String类
1.String類是不可變類,一旦一個String對象被創(chuàng)建以后,包含在這個對象中的字符序列式不可改變的,直至這個對象被銷毀。
String s1 = "java"; s1 = s1 + "android"; s1 = s1 + "mysql";1)上面三個語句使用了3個字符串直接量之外,還會額外生成2個字符串直接量,"javaandroid","javaandroidmysql";程序中的s1依次指向3個不同的字符串對象。因為String是不可變的,所以會額外產(chǎn)生很多臨時變量。
2)使用StringBuffer和StringBuilder就可以避免這個問題,StringBuilder提供了一系列插入、追加、改變該字符串里包含的字符序列的方法。
3)StringBuffer和StringBuilder的length是可變的,可以通過length()、和setLength(int len)方法來訪問和修改其字符序列的長度。
4)StringBuffer對象則代表一個字符序列可變的字符串。一旦通過StringBuffer生成了最終想要的字符串,就可以調(diào)用它的toString()方法將其轉(zhuǎn)換成一個String對象。
5)StringBuilder也代表字符串對象,基本與StringBuffer相似。不同的是StringBuffer是線程安全的,而StringBuilder則沒有實現(xiàn)線程安全,所以性能略高。
2.String對象中常用的操作字符串的方法
1)char charAt(int index):獲取字符串中指定位置的字符。
String s = new String("abcdefghijklmn"); System.out.println("s.charAt(2):" + s.charAt(2));采用for循環(huán)遍歷出字符串中的所有字符
for(int i=0; i<s.length(); i++){System.out.println("Char " + i + " is " + s.charAt(i)); }2)int compareTo(String anotherString):比較兩個字符串的大小。如果兩個字符串的字符序列相等,則返回0;不相等時,從兩個字符串第0個字符開始比較,返回第一個不相等的字符差。
另一種情況,較長字符串的前面部分恰巧是較短的字符串,則返回它們的長度差。
3)String concat(String str):將該String對象與str連接在一起。
String s1 = "aaaa"; String s2 = "bbbb"; System.out.println(s1.concat(s2))4)static String copyValueOf(char[] data):將字符數(shù)組連綴成字符串。
static String copyValueOf(char[] data,int offset,int count):將char數(shù)組的子數(shù)組中的元素連綴成字符串。
5)boolean endsWith(String suffix):返回該String對象是否已suffix結(jié)尾。
?
String a = "abcdefg"; String b = "fg"; System.out.println(a.endsWith(b));?
6)boolean equals(Object anObject):將該字符串與制定對象比較,如果二者包含的字符序列相等,則返回true,否則返回false。
boolean equalsIgnoreCase(String str):與equals(Object anObject)方法相似,只是忽略了大小寫。
7)byte[] getBytes():將該String對象轉(zhuǎn)換成byte數(shù)組。
String a = "abcdef"; byte b[] = a.getBytes(); System.out.println(b.length);8)void getChars(int srcBegin,int srcEnd,char[] dst,int dstBegin):該方法將字符串從srcBegin開始,到srcEnd結(jié)束的字符復(fù)制到dst字符數(shù)組中,dstBegin為目標字符數(shù)組的起始復(fù)制位置。
char[] s1 = {'I',' ','l','o','v','e',' ','j','a','v','a'}; String s2 = "you"; s2.getChars(0, 3, s1, 7); System.out.println(s1);9)int indexOf(int ch):找出ch字符在該字符串中第一次出現(xiàn)的位置。
int indexOf(int ch, int formIndex);找出ch字符在該字符串中從fromIndex開始第一次出現(xiàn)的位置。
int indexOf(String str):找出str子字符串在該字符串中第一次出現(xiàn)的位置。
int indexOf(String str, int formIndex);找出str子字符在該字符串中從fromIndex開始后第一次出現(xiàn)的位置。
int lastIndexOf(int ch):找出ch字符在該字符串中最后一次出現(xiàn)的位置。
int lastIndexOf(int ch, int formIndex);找出ch字符在該字符串中從fromIndex開始最后一次出現(xiàn)的位置。
int lastIndexOf(String str):找出str子字符串在該字符串中最后一次出現(xiàn)的位置。
int lastIndexOf(String str, int formIndex);找出str子字符在該字符串中從fromIndex開始后最后一次出現(xiàn)的位置。
10)boolean startsWith(String prefix):該String對象是否以prefix。
boolean startsWith(String prefix, int toffset):該String對象從toffset位置算起,是否以prefix開始。
11)char toCharArray():將該String對象轉(zhuǎn)換成char數(shù)組。
String a = "abcdef"; char b[] = a.toCharArray(); System.out.println(b.length);12)String substring(int beginIndex):獲取從beginindex位置開始到結(jié)束的子字符串。
String substring(int beginIndex, int endIndex):獲取從beginIndex位置開始到endIndex位置的子字符串。 String a = "abcdefghijklmn"; System.out.println(a.substring(2)); System.out.println(a.substring(2,5));13)String toLowerCase():將字符串轉(zhuǎn)換成小寫。
String toUpperCase():將字符串轉(zhuǎn)換成大寫。
14)String valueOf(X x):將基本數(shù)據(jù)類型轉(zhuǎn)換成String對象。
String a = String.valueOf(23.333); System.out.println(a);String類中還有很多的方法,我們都可以從API文檔中查到各種方法的用法。
?
轉(zhuǎn)載于:https://www.cnblogs.com/EvanLiu/p/3150067.html
總結(jié)
以上是生活随笔為你收集整理的Java笔记:String类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大型高性能网站的十项规则
- 下一篇: java美元兑换,(Java实现) 美元