String類
字串的概念
簡單來說字串就是由多個字符(char)來組成的一串,我們自然可以用char[] 陣列來保存一個字串.但是在操作字串時,比方說插入一個字符到字串中,需要實作后移等操作.為了應對這個問題,C++引入string類,類似的Java也有String類.String類位于java.lang中于是不需要import匯入包.
Java String的特殊之處
假設我們定義4個字串,讓他們的內容相同,唯一的不同是是否用new陳述句,這里需要注意的一點是為了提高運行速度,Java采用了“物件池”來存放字串常量,即開辟一個專門的字串池來存放字串,創建一個字串時,系統將會在字串池中查找有無相同內容的字串存在,如果有直接使用該物件,也就是說str1 與str2指向的是同一個字串,而str3、str4通過new產生 指向的不是一個字串,更為值得注意的是String內容的不可變性,也就是說每次改變字串內容都會產生一個新的物件,或者指向字串池中已經存在的字串物件.
String str1="一個字串";
String str2="一個字串";
String str3=new String("一個字串");
String str4=new String("一個字串");
str1="另外一個字串";//原來的物件"一個字串"仍然存在,會造成記憶體消耗
String類的基本方法
字串創建
1. String()//生成一個空串
String a=new String();
2. String(String original)//原有字串直接復制
String a="java",String b= new String(a);
3.String(char[],start,count)//字串陣列賦值 后面兩引數可以省略 分別為開始的位置和長度
char ch[]={'a','b','v','c','d','e'};
String s1=new String(ch);//s1=abvcde;
String s2=new String (ch,2,3)//s2=vcd;
常用方法
//獲取長度
String s="sabsda";
int cnt=s.length();
boolean equals(a,b);//比較兩個字串內容是否相同,區分大小寫
boolean equalsIgoreeCase()//無視大小寫比較
/*與==的區別是equal只判斷內容是否相同,而==比較是否指向同一個物件*/
String str1="一個字串";
String str2="一個字串";
String str3=new String("一個字串");
String str4=new String("一個字串");
equals(str1,str2)==1
(str1==str2)==1
equals(str3,str4)==1
(str3==str4)==0;
int compareTO(a,b);//字典序比較 如果a<b回傳負數 a==b回傳0 a>b回傳正數
int compareTOUgnoreCase();//不區分大小寫
boolean startsWith(string a);//是否以a作為開頭
boolean endsWiith(String a);// 是否以a作為結尾
//字串的查找
1.int indexOf(char ch)
2.int indexOf(char ch,int position);
//字串的修改
//需要注意的是,字串內容具有不可改變性,如果硬性改變會產生新的字串但是原串不發生改變.所以所有改變字串的操作都會回傳一個新的字串物件而不是再原串上修改
1.連接 String str="This".concat("a") concat類似于 +;
2 替代 str.replace('a','b')將str中a替換成b
3 去除頭部與尾部空格 str.trim();
4 str.toLowerCase()//小寫
5 str.toUUpperCase()//大寫
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/305441.html
標籤:java
