不論是基本的char字符型,仍是包裝字符類型Character,它們的每一個變量只能存放一個字符,沒法知足對一串字符的加工。爲了可以直接操做一連串的字符,Java設計了專門的字符串類型String,該類型容許保存一整串字符,並對字符串進行各類處理。
字符串類型不屬於基本類型,它的用法與包裝類型更爲接近。例如給字符串變量賦初始值,就有多達四種的賦值形式(包裝類型只有三種賦值),分別介紹以下:
一、被雙引號包裹着的字符串,可直接用等號賦值給字符串變量,代碼示例以下:html
// 第一種方式:用雙引號把字符串括起來 String fromQuote = "Hello"; System.out.println("fromQuote="+fromQuote);
二、調用String類型的valueOf方法把整型、浮點型、布爾型、字符型、字符數組等變量轉換爲字符串,方法調用的代碼例子以下:java
// 第二種方式:使用String的valueOf方法把整型、浮點型、布爾型、字符型、字符數組等變量轉換爲字符串 String fromValueOf = String.valueOf(111); System.out.println("fromValueOf="+fromValueOf);
三、對於字符數組來講,還能經過new關鍵字建立字符串變量,此時賦值代碼以下所示:數組
// 第三種方式:對於字符數組來講,還能經過new關鍵字建立字符串變量 char[] array = {'A', 'B', 'C'}; String fromArray = new String(array); System.out.println("fromArray="+fromArray);
四、對於基本變量類型(數組除外)來講,也能夠利用加號鏈接基本變量和空串,下面的代碼即是一個例子:設計
// 第四種方式:對於基本變量類型(數組除外)來講,也能夠利用加號鏈接基本變量和空串 // 注意,數值變量之間的加號爲算術上的相加運算,而字符串之間的加號爲兩個字符串的合併操做 String fromPlus = true+""; System.out.println("fromPlus="+fromPlus);
以上給字符串變量的賦值方式很少很多正好四種,恰似茴香豆的茴有四種寫法那樣,既然知曉了字符串的四種賦值,不妨溫習一下魯迅筆下「茴」的四種寫法,看看你還記得幾個?茴字上邊爲草頭,下邊爲回家的回,其實有四種寫法的是「回」字,包括:回、囘、囬,還有一種是「口」字而後裏面有個「目」字。回頭再複習剛纔提到的字符串的四種賦值方式,若是讀者還記得具體是哪四種,那麼恭喜你已經掌握了字符串的入門訣竅。htm
如今可以把各類基本類型的變量賦值給字符串變量,那麼公平起見,也要求字符串變量容許轉換成其它類型的變量。不過字符串類型不支持直接轉爲基本類型,必須先轉成包裝類型,再從包裝類型轉成基本類型。像包裝整型Integer提供了parseInt方法,可將輸入的字符串變量轉換成包裝整型變量並返回。相似的字符串轉換方法還有:包裝長整型Long的parseLong方法,包裝浮點型Float的parseFloat方法,包裝雙精度型Double的parseDouble方法,包裝布爾型Boolean的parseBoolean方法。但是包裝字符型並無相應的parse***方法,這是怎麼回事呢?仔細想一想字符串內部由一串連續的字符組成,然而一個字符型變量只能容納一個字符,因爲一串字符沒法轉成一個字符,必須拆開變爲多個字符,所以字符串類型不能轉成字符型,只容許轉換成字符數組。要想把字符串變量轉爲字符數組,則需調用字符串變量的toCharArray方法,該方法的輸出參數即爲字符數組類型char[]。
下面的方法調用代碼演示瞭如何將字符串類型轉換成包裝類型,以及字符數組類型的變量:blog
String number = "13456"; // 將字符串變量轉換成包裝整型變量 Integer packInt = Integer.parseInt(number); System.out.println("packInt="+packInt); // 將字符串變量轉換成包裝長整型變量 Long packLong = Long.parseLong(number); System.out.println("packLong="+packLong); // 將字符串變量轉換成包裝浮點型變量 Float packFloat = Float.parseFloat(number); System.out.println("packFloat="+packFloat); // 將字符串變量轉換成包裝雙精度型變量 Double packDouble = Double.parseDouble(number); System.out.println("packDouble="+packDouble); String zhen = "true"; // 將字符串變量轉換成包裝布爾型變量 Boolean packBoolean = Boolean.parseBoolean(zhen); System.out.println("packBoolean="+packBoolean); // 將字符串轉換成字符數組 char[] numberArray = number.toCharArray(); for (char item : numberArray) { System.out.println("item="+item); }
前面介紹大數字類型的時候,提到能夠經過valueOf方法給大數字變量賦值,可是該方法的輸入參數要求爲基本數字類型,由於基本類型可表達的數值範圍存在限制,好比長整型long表示的數字大小爲19位整數,雙精度型double表示的有效數字大小隻有15到16位,因此一旦某個巨大的整數或者長尾巴的小數超出有效位數,這個數字就沒法經過valueOf方法賦值給大數字類型了。爲了解決超大數字的賦值問題,BigInteger和BigDecimal提供了第二種賦值方式:先利用字符串變量保存超大數字,再使用關鍵字new建立該字符串對應的大數字變量,具體的超大數字賦值代碼示例以下:ci
String bigNumber = "134567890134567890134567890"; // 將字符串變量轉換成大整數變量 BigInteger bigInt = new BigInteger(bigNumber); System.out.println("bigInt="+bigInt); // 將字符串變量轉換成大小數變量 BigDecimal bigDec = new BigDecimal(bigNumber); System.out.println("bigDec="+bigDec);
既然字符串變量可以轉換成包裝類型和大數字類型,反過來,包裝變量和大數字變量也能轉換成字符串類型,而且轉爲字符串的方式很簡單,只要由包裝變量和大數字變量調用自身的toString方法便可。開發
更多Java技術文章參見《Java開發筆記(序)章節目錄》字符串