Java學習:飄逸的字符串html
相信無論咱們運用Java語言來開發項目仍是進行數據分析處理,都要運用到和字符串相關的處理方法。這個社會到處有着和字符串相關的影子:日誌、文檔、書籍等。既然咱們離不開字符串,那麼就來好好認識一下吧。java
在Java語言裏,有兩種方法來建立一個字符串對象:一是用字符串直接量數組
1 String message=new String("Welcome to Java"); 2 String message2="Welcome to Java";
二是經過字符數組。學習
1 char[] array={'G','o','o','d',' ','D','a','y'}; 2 String message3=new String(array);
注意:String變量存儲的是對String對象的引用,String對象裏存儲的纔是字符串的值。因此嚴格的說,術語String變量、String對象和字符串值是不一樣的,只是日常咱們爲了簡單起見,都統稱爲字符串而已。spa
String對象是不可變的,它的內容是不能改變的。好比下面的兩行代碼:日誌
1 String s="Java"; 2 s="html";
第一條語句建立了內容爲「Java」的String對象,並將其引用賦值給s。第二條語句建立了一個內容爲「html」的新String對象,並將其賦值給s。因此執行這兩條語句以後,兩個String的對象都沒有改變,而且其中的內容也沒有發生變化,只是s變量最後指向了新的String對象。code
一旦看到比較兩字,咱們想到的是「==」。然而,運算符==只能檢測字符串String1和String2是否指向同一個對象,但它不會告訴咱們它們的內容是否相同。所以Java裏面判斷字符串是否相同,咱們應該使用equals方法或者compareTo方法。htm
1 String s1=new String("Welcome to Java"); 2 String s2="Welcome to Java"; 3 String s3="Welcome to C++"; 4 String s4="welcome TO java"; 5 System.out.println(s1.equals(s2)); 6 System.out.println(s1.equals(s3)); 7 System.out.println(s1.compareTo(s2));
補充:當比較兩個字符串是否相等的時候,方法equalsIgnoreCase和compareToIgnoreCase能夠先忽略字母大小寫而後進行比較。對象
1 System.out.println(s1.equalsIgnoreCase(s4)); 2 System.out.println(s2.compareToIgnoreCase(s4));
length是String類的一個方法,但它是數組對象的一個屬性,因此,咱們要獲取字符串s的字符個數,就要使用s.length()。方法s.charAt(index)可用於提取字符串s的某個特定字符,其中下標index的取值範圍在0到s.length()-1之間。blog
另外,咱們可使用concat方法鏈接兩個字符串。以下代碼所示,將字符串s1和s2鏈接構成了s3。
1 String ss="BaiYi"; 2 String ss2="ShaoNian"; 3 String ss3=ss.concat(ss2); 4 System.out.println(ss3);
固然了,好像日常咱們更傾向於更簡單的方法,那就是直接使用加號(+)來鏈接兩個或者更多的字符串構成新的字符串。
前面已經提到了咱們能夠經過charAt方法來獲取字符串的任意一個單字符,可是獲取它的子串應該怎麼辦呢?咱們就用substring方法。
1 System.out.println("Welcome to Java".substring(0,11) + "C++");
toLowerCase:返回將全部字符都轉換爲小寫以後的新字符串
toUpperCase:返回將全部字符都轉換爲大寫以後的新字符串
trim:返回去掉兩端的空白字符以後的新字符串
replace:返回用一個新子串替換這個字符串中全部和它匹配的字符的新字符串
replaceFirst:返回用一個新子串替換這個字符串中第一個和它匹配的子串以後的新字符串
replaceAll:返回用一個新子串替換這個字符串中全部和它匹配的子串以後的新字符串
split:返回用定界符分隔的子串所構成的一個字符串數組
1 System.out.println("Welcome TO".toLowerCase()); 2 System.out.println("Welcome to".toUpperCase()); 3 System.out.println(" Welcome to ".trim()); 4 System.out.println("Welcome to".replace('e','A')); 5 System.out.println("Welcome to".replaceFirst("e","ABC")); 6 System.out.println("Welcome to".replaceAll("e","AB")); 7 8 String[] str="Java#HTML#C++".split("#",0); 9 for (int i=0; i<str.length; i++) { 10 System.out.println(str[i] + " "); 11 } 12 String[] str2="Java#HTML&C++".split("[#&]",0); 13 for (int i=0; i<str2.length; i++) { 14 System.out.println(str2[i] + " "); 15 }