java字串
字串顧名思義就是一些字元組合在一起組成的一串資料,稱作字串,在Java中字串用雙引號包圍起來,格式為String string = “hello world”; 這裡的hello world就是一個字串,字串裡面可以包含任何的字元內容;
在Java中String是一個類,所以除了上面直接讓String物件等於一個字串之外,我們可以向普通的類一樣,使用new建立一個String物件;
當我們使用第一種方法也就是String string = ”hello”;的時候,程式會在特定的記憶體中(專門儲存字串的記憶體)查詢是否有”hello”這個字串,如果沒有則在這個記憶體區域建立一個”hello”字串,當我們再次建立另一個字串String string2 = “hello”;的時候,由於這個時候,這個記憶體區域已經有了”hello”這個字串,所以我們string2就直接指向了”hello”這個地址;這個時候我們使用string == string2的時候,得到的結果是true;也就是說兩個指向值是相等的;
當我們使用new 的方式建立一個字串物件的時候,我們檢視String原始碼,可以發現String類中是使用private final char value[];的變數來存放字串的內容;當我們建立兩個字串String string2 = new String(“hello”); String string3 = new String(“hello”);這個時候,我們使用string2 == string3的時候,得到的結果是false;這是由於new建立的物件會分別在記憶體中建立兩個地址,所以string2和string3不相等;但是我們使用string2.value == string3.value的時候,得到的結果是true;因為這兩個地址的字串在記憶體中是指向的同一個地址的”hello”,並且和我們剛才建立的string所指向的”hello”地址一樣;所以我們一般比較字串的時候,使用string2.equal(string3);的方式進行比較;
我們可以從下圖中看出來,雖然有四個String物件,但是他們的value值的地址都是一樣的;
Java中String類的構造方法非常的多,我們根據需求,將不同型別的陣列轉換成我們想要的字串;並且String中有我們用的比較多的一些方法,比如public boolean equalsIgnoreCase( String anotherString )表示忽略兩個字串中字元的大小寫,比較兩個字串是否相等;public boolean startsWith(String prefix, int toffset)表示從字串第toffset的位置是否是由prefix開始的;public boolean endsWith(String suffix)判斷字串是否是以suffix結束的,我們可以從原始碼中看到,這個方法使用了startsWith(suffix, value.length - suffix.value.length)的方法;public String substring(int beginIndex)表示擷取字串從beginIndex開始以後的內容;public String substring(int beginIndex, int endIndex)表示擷取字串從beginIndex到endIndex位置的內容;
Java對字串的封裝非常的強大,除了上述的常用方法之外,還有很多非常方便的方法;能夠熟練掌握String對我們的開發有非常大的幫助;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31543790/viewspace-2692132/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java™ 教程(字串)Java字串
- java字串解析Java字串
- java------字串Java字串
- JAVA字串轉日期或日期轉字串Java字串
- java字串常用方法Java字串
- 上升下降字串java字串Java
- Java中的字串Java字串
- JAVA字串比較Java字串
- java 字串轉intJava字串
- 學習Java: Java中的字串Java字串
- Java™ 教程(比較字串和字串的部分)Java字串
- Java-string字串Java字串
- Java基礎系列—字串Java字串
- Java字串那些事兒Java字串
- Java解析Json字串JavaJSON字串
- 【java初探】——格式化字串Java字串
- 【JAVA】判斷字串非空Java字串
- Java字串編碼介紹Java字串編碼
- Java 11字串API有更新Java字串API
- leetcode:字串相乘(java)LeetCode字串Java
- java——split的用法(字串拆分)Java字串
- Java中的字串池概念Java字串
- Java基礎之二_字串Java字串
- java split進行字串分割Java字串
- java 拆分與合併字串Java字串
- 字串全排列 java實現字串Java
- Java 的字串和子串Java字串
- java字串轉Base64Java字串
- 不再怕面試被考字串---詳解Java中的字串面試字串Java
- java查詢字串裡與指定字串相同的個數Java字串
- Java 字串比較、拼接問題Java字串
- Java 16進位制字串 取反Java字串
- java生成json字串的方法JavaJSON字串
- java從字串中提取數字Java字串
- Java字串拼接寫法 joiner.onJava字串
- Java字串建立方式比較Java字串
- java判斷字串是否為空Java字串
- Java 浮點到字串轉換Java字串