Java新人之路 -- String類
String類
1. String類的簡述
String類位於java.lang包下,是Java語言的核心類,提供了字串的比較、查詢、擷取、大小寫轉換等操作
要點1. String是final修飾的,所以是最終類,最終類是不能被繼承的,既然不能被繼承也就意味著裡面的方法不能被重寫。其成員方法也是如此
要點2. **字串常量池:**字串是常量,所有的字串常量都是儲存在常量池中的,每個常量在常量池中都有地址;在常量池中,如果定義的常量在常量池中已經存在,則不會再進行建立,而是直接拿來用,如果不存在就建立一個常量扔進常量池
要點3. 字串物件的建立 1、字串本身是引用資料型別,可以通過new關鍵字進行物件的建立 2、字串又比較特殊,它也可以直接賦值的形式進行字串物件的建立
上述的區別在哪裡呢? API中說明:字串都是常量 字串常量都在常量池(方法區)中儲存,是有自己的地址的,通過new關鍵字建立出來的物件在堆記憶體中
舉例說明
注意點: ==和equals的區別 ?
==用於基本資料型別時比較的是值,用於引用資料型別比較的時地址;
equals在字串中是先比較地址後比較內容
public static void method2() {
String str = new String("new的字串物件");
String str2 = new String("new的字串物件");
System.out.println(str == str2);// false 因為是兩個物件,地址不同
String str3 = "直接賦值的字串物件";
String str4 = "直接賦值的字串物件";
System.out.println(str3 == str4);// true 因為"直接賦值的字串物件"在常量池中被str3建立,然後直接被str4拿走了地址,在常量池中是同一個常量
String str5 = "hello";
String str6 = "world";
String str7 = "helloworld";
String str8 = str5 + str6;// 對已經建立好的物件進行了拼接
System.out.println(str7 == str8);// false str8是兩個物件的拼接,str7是一個物件
System.out.println(str7.equals(str8));// true equals在字串中是先比較地址後比較內容
String str0 = "a" + "b" + "c";// 先拼接再建立物件所以str0實際還是等於"abc"
String str01 = "abc";
System.out.println(str0 == str01);// true 值相同
System.out.println(str0.equals(str01));// true
}
2. String類的常用方法
/**
* String中由於且常用的方法
*/
public static void Method2() {
// replace() 替換
String url = "http://www.news.baidu.com";
String newUrl = url.replace("baidu", "jd");
System.out.println(newUrl);//輸出http://www.news.jd.com
String mum = "一二3三3四五3六七3八";
// substring() 擷取 如果只有一個引數,代表開始,直到末尾結束
System.out.println(mum.substring(5));//輸出 四五3六七3八
// substring() 擷取 如果有兩個引數,引數一代表開始,引數二代表結束位置(不包含)
System.out.println(mum.substring(3, 7));//輸出 三3四五
// 注意角標從0開始,此處的3對應的是陣列的四
System.out.println(mum.substring(4, mum.length()));//輸出 3四五3六七3八
// spilt() 分割 引數代表要拆分的依據
String[] urlArr = url.split("b");
System.out.println(urlArr[urlArr.length - 1]);//輸出 aidu.com
// 減號後的數字代表被引數劃分後的第幾部分,倒著數
String[] mumArr = mum.split("3");
System.out.println(mumArr[mumArr.length - 5]);//輸出 一二
}
3. String類的一般方法
/**
* String中有用且不是很常用的方法
*/
public static void Method3() {
String str = "herbert bo";
System.out.println("指定索引出的char值" + str.charAt(1));//輸出 指定索引出的char值e
System.out.println("指定char值對應的索引:" + str.indexOf('b'));//輸出 指定char值對應的索引:3
System.out.println("指定char值對應的索引:" + str.lastIndexOf('b'));//輸出 指定char值對應的索引:8
String compare1 = "agc";
String compare2 = "abc";
// .compareTo對兩個字元進行對比,計算char值的差,從第一位開始,如果第一位有差就輸出差,第一位一樣就計算第二位
System.out.println(compare2.compareTo(compare1));//輸出 -5, 因為compare2中的b比compare1中的g小5
// .concat和拼接類似
System.out.println(compare2.concat(compare1));//輸出 abcagc
// .contains
System.out.println("是否包含指定的字串:" + str.contains("hello"));//輸出 是否包含指定的字串:false
String url = "https://www.baidu.com";
// 是否以指定的頭和尾
System.out.println(url.endsWith("cn"));//輸出 false
System.out.println(url.startsWith("http"));//輸出 true
System.out.println("判斷字串是否為空字元:" + "".isEmpty());
}
相關文章
- Java String類Java
- Java使用類-StringJava
- java String類說明Java
- java string類 基本操作Java
- Java進階01 String類Java
- java 常用類-String-1Java
- java String類練習題Java
- Java String類的replaceAll方法Java
- GitHub與新人類Github
- Java中String類的常用方法Java
- Java--String類查詢方法Java
- Java中String類的初始化?Java
- Java與眾不同的字串-String類Java字串
- Java基礎類String學習分析Java
- Java之String類的使用細節Java
- Java新人報導^_^Java
- [趣學程式]java的常用類之StringJava
- java學習之路----java類庫---程式國際化Java
- Java中String類不可變性的好處Java
- JAVA集合類簡要筆記 - 內部類 包裝類 Object類 String類 BigDecimal類 system類Java筆記ObjectDecimal
- java中String類常用方法的使用與例項Java
- 【Java系列】從JVM角度解析Java核心類String的不可變特性JavaJVM
- day08_我的Java學習筆記 (String類、ArrayList集合類)Java筆記
- 04_String類
- 《Java工程師成神之路-基礎篇》Java基礎知識——String相關Java工程師
- Java Object類 和 String類 常見問答 6k字+總結JavaObject
- Java程式設計基礎13——常見物件_String類Java程式設計物件
- String是一個很普通的類 - Java那些事兒Java
- java.lang.String 與stringJava
- 《Java從入門到失業》第四章:類和物件(4.2):String類Java物件
- string類的實現
- 自實現string類
- 常見物件-String類物件
- [JAVA]toString()、String.valueOf()、(String)Java
- 【JAVA】Java中 File f=new File(String parent ,String child)Java
- 詳解Java 虛擬機器(第③篇)——String 類和常量池Java虛擬機
- 做java新人,看彭師指南(建議)Java
- 今日總結深入String類