一、字符串數組
·用雙引號括起來的0個或多個字符就是一個字符串變量函數
「hello」oop
「1」this
「」spa
二、字符串變量.net
·String s;code
·String 是一個類,String的變量是對象的管理者而非全部者對象
·就像數組變量是數組的管理者而非全部者同樣blog
·包裹類型的第一個字母也是大寫的內存
三、new = 建立
String s = new String(「a string」);
建立了一個String的對象
用「a string」初始化這個對象
建立管理這個對象的變量s
讓s管理這個對象
四、初始化字符串變量
·String s = "hello";
·編譯器幫你建立一個String類的對象交給s來管理
五、字符串鏈接
·用加號(+)能夠鏈接兩個字符串
·「hello」+「world」-->"helloworld"
·當這個+的一邊是字符串而另外一邊不是時,會將另外一邊表達爲字符串而後作鏈接
「I'm 」+18-->"I'm 18"
1+2+"age"-->"3age"
"age"+1+2-->"age12"
六、輸入字符串
·in.next();讀入一個單詞,單詞的標誌是空格
·空格包括空格、tab和換行
·in.nextLine;讀入一整行
七、比較兩個String
·String應該用.equals來比較
if( input == "bye" ){ //比較是否管理同一個字符串 ... } if( input.equals("bye") ){ //比較內容是否相同 ... }
八、字符串的改變
如下面的代碼爲例
1 String s; 2 String k; 3 s = "koopa"; 4 System.out.println(s); 5 k = "koopa"; 6 k = k+" is a good man.";
當第5行的k被第一次賦值的時候,其指向內存中的地址與變量s是同樣的
即,此時k與s管理着同一個字符串「koopa」,此時如果比較(s == a),其結果是true
第六行,k發生了變化,此時意味着在一個新的地方「koopa is a good man.」的字符串被建立了,原先位置的「koopa」並無發生變化
即k此時管理的是另一個字符串,(s == a),其結果是false
更詳細的內容,貼一個地址
https://my.oschina.net/ccqy66/blog/507100
九、字符串的操做
·字符串是對象,對它的全部操做都是經過「.」這個運算符來進行的
·字符串.操做
·它表示對.左邊的這個字符串作右邊的那個操做
·這裏的字符串能夠是變量也能夠是常量
---
1)String大小的比較
·兩個字符串能夠比較大小:
s1.compareTo(S2)
若是s1比s2小,那麼結果是負的;若是s1和s2相等,那麼結果是0;若是s1比s2大,那麼結果是正的
·compareToIgnoreCase能夠不區分大小寫地來比較大小
2)得到String的長度
·用length()函數
String name = 「Hellola」;
str1 = 「one」;
str2 = "";
str3;
name.length(); -->7
str1.length(); -->3
str2.length(); -->0
str3.length(); -->Error! (錯誤是由於str3沒有管理任何String對象)
3)訪問String裏的字符
· s.CharAt(index)
·返回在index上的單個字符
·index的範圍是0到length()-1
·第一個字符的index是0,和數組同樣
·可是不能用for-each循環來遍歷字符串
4)獲得子串
·s.substring(n)
·獲得從n號位置到末尾的所有內容
·s.substring(b,e)
·獲得從b號位置到e號位置以前的內容
5)尋找字符
·s.indexOf(c)
獲得c字符所在的位置,-1表示不存在
·s.indexOf(c,n)
從n號位置開始尋找c字符
·s.indexOf(t)
找到字符串t所在的位置
·從右邊開始找
s.lastIndexOf(c)
s.lastIndexOf(c,n)
s.lastIndexOf(t)
6)其餘String操做
·s.startsWith(t) //是不是以字符/字符串t開頭
·s.endsWith(t) //是不是以字符/字符串t結尾
·s.trim() //把字符串兩端的空格刪掉
·s.replace(c1,c2) //把字符串中全部的c1都換成c2
·s.toLowerCase() //把字符串中的字母所有轉換成小寫
·s.toUpperCase() //把字符串中的字母所有轉換成大寫
7)不可變的String
·全部的字符串都是不可變的,對它們的操做的結果都是製造新的字符串出來
8)在switch-case中使用字符串
1.7及以上的Java版本纔可以使用
switch(s){ case "this":...break; case "that":...break; }