java基礎---字串string,java---string
1、字元創的概念
java字串就是Unicode字元序列。例如,串“Java\u2122”由5個Unicode字元J、a、v、a和TM。java沒有內建的字串類型,而是在標準庫Java類庫中提供了一個預定義類String。
2、子串
String類的substring方法可以從一個較大的字串提取出一個子串。
String greeting ="Hello";String s = greeting.substring(0,3);
建立了一個由字元“Hel”組成的字串。 substring方法的第二個參數是不想複製的第一個位置。這裡要複製位置為0、1和2(從0到2, 包括0和2)的字元。在substring中從0開始計數,直到3為止,但不包含3。
substring的工作方式有一個優點:容易計運算元串的長度。字串s.substring(a, b)的長度為ba。例如,子串“Hel”的長度為3-0=3。
3、拼接
與大多數程式設計語言一樣,Java語言允許使用+號串連兩個字串。
String str1 = "I Love java!";String str2= "I Love China!";String str3 = str1+str2;
上述將“I Love Java!I Love China”賦值給了str3;e(注意,單詞之間沒有空格,+號按照給 定的次序將兩個字串拼接起來)。 當將一個字串與一個非字串的值進行拼接時,後者被轉換成字串。
4、不可變字串
String類沒有提供用於修改字串的方法,如果希望將greeting的內容修改為“Help!”,不能直接地將greeting的最後兩個位置的字元修改為‘P’和‘!’!但是可以用替換來做出“修改”這一意義。
greeting = greeting.substring(0,3)+"p!";
上述語句將greeting當前值修改為Help!
由於不能修改Java字串中的字元,所以在Java文檔中將String類對象稱為不可變字串, 如同數字3永遠是數字3一樣,字串“Hello”永遠包含字元H、e、l、l和o的代碼單元序列, 而不能修改其中的任何一個字元。當然,可以修改字串變數greeting,讓它引用另外一個字 符串,這就如同可以將存放3的數值變數改成存放4一樣。
5、檢測字串是否相等
可以使用equals()方法檢測兩個字串內容是否相等。
s.equals(t); 如果字串s與字串t相等,返回true,否則返回false。需要注意,s和t都是字串變數,也可以是字串常量。
一定不能用“==”來檢測兩個字串是否相等!這個運算子只能夠確定兩個字串是否防放置在同一個位置上,比較的是內容和地址都要相等時2個字串才會相等。當然,如果字串放在同一個位置上,它們必然相等,但是完全有可能內容相同的多個字串在拷貝放置在不同位置上。
String greeting = "hello";
if(gerrting =="hello")
//probably true
if(greeting.substring(0,3)=="hel")
//probably false;
如果虛擬機器始終將相同的字串共用,就可以使用"=="運算子判斷是否相等,但是實際上只有字串常量才是共用的,而+或substring 等操作產生的結果並不是共用的。
6、字串API
• char charAt (int index) 返回給定位置的代碼單元。除非對底層的代碼單元感興趣,否則不需要調用這個方法。
• int codePointAt(int index) 5.0 返回從給定位置開始或結束的代碼點。
• int offsetByCodePoints(int startIndex, int cpCount) 5.0 返回從startIndex代碼點開始,位移cpCount後的代碼點索引。
• int compareTo(String other) 按照字典順序,如果字串位於other之前,返回一個負數;如果字串位於other之後, 返回一個正數;如果兩個字串相等,返回0。
• boolean endsWith(String suffix) 如果字串以suffix結尾,返回true。
• boolean equals(Object other) 如果字串與other相等,返回true。
• boolean equalsIgnoreCase(String other) 如果字串與other相等(忽略大小寫),返回true。
• int index0f(String str)
• int index0f(String str, int fromIndex) Java基本的程式設計結構 47 java.lang.string 1.0
• int index0f(int cp) • int index0f(int cp, int fromIndex) 返回與字串str或代碼點cp匹配的的第一個子串的開始位置。這個位置從索引0或 fromIndex開始計算。如果在原始串中不存在str,返回-1。
• int lastIndex0f(String str)
• int lastIndex0f(String str, int fromIndex)
• int lastindex0f(int cp) • int lastindex0f(int cp, int fromIndex) 返回與字串str或代碼點cp匹配的最後一個子串的開始位置。這個位置從原始串尾端或 fromIndex開始計算。
• int length( ) 返回字串的長度。
• int codePointCount(int startIndex, int endIndex) 5.0 返回startIndex和endIndex-1之間的代碼點數量。沒有配成對的代用字元將計入代碼點。
• String replace(CharSequence oldString,CharSequence newString) 返回一個新字串。這個字串用newString代替原始字串中所有的oldString。可以用 String或StringBuilder對象作為CharSequence參數。
• boolean startsWith(String prefix) 如果字串以preffix字串開始,返回true。
• String substring(int beginIndex) • String substring(int beginIndex, int endIndex) 返回一個新字串。這個字串包含原始字串中從beginIndex到串尾或endIndex-1的所 有代碼單元。
• String toLowerCase( ) 返回一個新字串。這個字串將原始字串中的所有大寫字母改成了小寫字母。
• String toUpperCase( ) 返回一個新字串。這個字串將原始字串中的所有小寫字母改成了大寫字母。
• String trim( ) 返回一個新字串。這個字串將刪除了原始字串頭部和尾部的空格。