可以證明,字符串操作是計算機程序設計中最常見的行為。
字符型包括字符常量和字符變量兩大類,字符常量是用單引號括起來的,如‘a’。 java中的轉義字符是‘/’. 字符變量:char ch=’s’;//默認初始值為/u0000; Java中,把字符串作為對象來處理,Java語言提供的java.lang中封裝了類String和StringBuffer,都可以用來表示一個字符串(分別處理不變字符串和可變字符串)。
一個字符串常量是雙引號之間的字符序列,如果雙引號之間沒有任何字符,那么該字符創為空串,Java允許在字符串中出現轉義字符。
Java允許直接使用加號連接兩個字符串。
對于字符串變量,在使用之前要顯示聲明,并且進行初始化。
> String a;> StringBuffer b;> //創建一個空字符串> String c=new String();> //直接用字符串常量來初始化一個字符串> String d="hello";>String類是字符串常量類,該類對象在建立后不能修改。Java編譯器保證每個字符串常量都是String類對象。
1.構造函數
String(); //生成一個空串;String(String value); //用已知串生成一個串對象String(char []value); //用字符數組生成一個串對象String(char value[],int offset,int count); //用字符數組value的offset位置開始的count個字符,建立一個字符串對象,之后并不影響原來的字符數組String(char value[],int hibyte,int offset,int count);//基本功能同上2.字符串類的訪問方法
字符串的訪問即字符串的引用,它包括得到字符串的長度,得到指定位置的字符或字串,以及得到某個字符或者字串在字符串中的位置等。
length(); //返回字符串長度toLowerCase(); //轉換為小寫串toUpperCase(); //轉換為大寫串charAt(int index); //返回字符串的第index個字符substring(int neginindex); //返回從beginindex位置(包括該位置)開始到結尾的所有字符substring(int beginindex,int endindex); //返回從beginindex位置(包括)開始到endindex(不包括)的所有字符compareTo(String anotherString); //字符串比較,返回值為兩者差regionMatches(int toffset,String other,int ooffset,int len); //比較本串從toffset開始的len個字符和other串從ooffset開始的len個字符是否一致。startWith(String PRefix); //比較字符串是否以prefix開始endWith(String suffix); //比較字符串以suffix結束indexOf(int ch); //返回某個字符或字符串在本字符串中第一次出現的位置lastIndexOf(); //返回某個字符或字符串在本字符串中最后一次出現的位置replace(char oldChar,char newChar); //將字符串中oldChar字符替換成newChar字符;valueOf(object obj); //將某個對象的實例轉換成字符串concat(String str); //將字符串str連接到本串的最后3.字符串和字符數組
將字符串保存到字符數組中:
getChars(int start,int end,char c[],int offset); //將當前字符串中的一部分字符復制到參數c指定的數組中,將字符中從位置start到end-1位置的字符復制到數組c中,并從數組c的offset處開始存放。
toCharArry();
調用該方法可以初始化一個字符數組,該數組的長度與字符串的長度相等,并將字符串對象的全部字符復制到該數組中。 如:String s=“哈哈哈”; char a[]=s.toCharArray();
StringBuffer類是字符串緩沖區,不僅可以接受修改,還可以讀入整個文件。
StringBuffer類的基本方法
1.StingBuffer類對象初始化
StringBuffer類的對象只能用初始化函數進行初始化,構造函數如下:
StringBuffer() //建立空的字符串對象StringBuffer(int length) //建立長度為length的字符串對象StringBuffer(String) //建立一個初始值為String的字符串對象2.StringBuffer類的訪問方法
length()——返回字符串長度setLength(int newlength)——重新設定字符串的長度,新串為舊串的截余charAt(int index)——返回指定位置的字符setCharAt(int index,char ch)——重設指定位置的字符append(Object obj)——將指定對象轉換為字符串,添加到原串尾insert(int offset,Object obj)——將指定對象轉換為字符串,然后插入到從offset開始的位置toString()——將字符串轉換成String對象capacity()——返回當前StringBuffer類對象分配的字符空間的數量getChars(int srcBegin,int srcEnd,char dst[],int dstBegin)——將字符串中從srcBegin到srcEnd的字符拷貝到數組dst[]中開始位置為dstBegin中。3.StringTokenizer
有時候分析字符串并將字符串分解成可被獨立使用的單詞,這些單詞叫做語言符號。要實現以上的要求可以使用java.util包中的StringTokenizer類。該類只要用途是將字符串以界定符為界,分析為一個個的token,定界符可以自己指定。 例: StringTokenlizer fenxi=new StringTokenizer(“We are student”); StringTokenlizer fenxi=new StringTokenizer(“We,are;student”,“,:”);
通常用while循環來逐個獲取語言符號,為了控制循環,我們可以使用StringTokenizer類中的hasMoreTokens()方法,只要字符串中還有語言符號,該方法就 返回 true,否則返回false。
另外我們還可以調用countTokens()方法得到字符串一共有多少個語言符號。
StringTokenizer 類三種構造方法:
①public StringTokenizer(String str)
為指定字符串構造一個string tokenizer。tokenizer使用默認的分集”/t/n/r/f”。 即:空白字符、制表符、換行符、回車符和換頁符。分隔符字符本身不作為標記。 參數:str - 要解析的字符串。 拋出:NullPointerException-如果str為 null。
②public StringTokenizer(String str,String delim)
為指定字符串構造一個string tokenizer。delim參數中的字符都是分隔標記的分隔符。分隔符字符本身不作為標記。 注意:如果delim為null,則此構造方法不拋出異常。但是嘗試對得到StringTokenizer調用其它方法則可能拋出NullPointerException。 參數:str - 要解析的字符串;delim-分隔符。
③public StringTokenizer(String str,String delim,boolean returnDelims)
為指定字符串構造一個string tokenizer。delim參數中的所有字符都是分隔標記的分隔符。如果returnDelims標志為true,則分隔符字符也作為標記返回。每個分隔符都作為一個長度為1的字符串返回。如果標志為false,則跳過分隔符,只是用作標記之間的分隔符。 如果delim為null,則此構造方法不拋出異常。但是,嘗試對得到的StringTokenizer調用其它方法則可能拋出NullPointerException。 參數:str -要解析的字符串;delim-分隔符。 returnDelims-指示是否將分隔符作為標記返回的標志. 拋出:NullPointerException-如果 str 為 null。
新聞熱點
疑難解答