正如整型int有對應的包裝整型Integer那樣,字元型char也有對應的包裝字元型Character。初始化字元包裝變數也有三種方式,分別是:直接用等號賦值、調用包裝類型的valueOf方法、使用關鍵字new創建新變數。倘若要把字元包裝變數轉換成字元變數,則調用包裝變數的charValue方法即可 ...
正如整型int有對應的包裝整型Integer那樣,字元型char也有對應的包裝字元型Character。初始化字元包裝變數也有三種方式,分別是:直接用等號賦值、調用包裝類型的valueOf方法、使用關鍵字new創建新變數。倘若要把字元包裝變數轉換成字元變數,則調用包裝變數的charValue方法即可。甚至可以對字元包裝變數做加減乘除運算,就像之前對待字元變數一般,字元包裝類型的基本使用代碼示例如下:
// 聲明一個包裝字元變數 Character character = 'A'; System.out.println("character="+character); // 把包裝字元變數轉換成基本字元變數 char value = character.charValue(); System.out.println("value="+value); // Character類型與char類型的變數之間允許直接賦值,靠的是“自動裝箱”和“自動拆箱” Character plusResult = (char) (character+1); System.out.println("plusResult="+plusResult);
註意到上述代碼裡面,包裝字元變數character直接加一,相加之和強制轉成char類型後又直接賦給另一個包裝變數plusResult。這裡不免令人疑惑,整型和浮點型同屬於基本類型,它們的變數相互賦值尚且需要顯式的強制類型轉換;如今有Character和char,一個是包裝類型,另一個是基本類型,為何它們的變數相互賦值不需要強制轉換類型呢?這是因為包裝類型僅僅對基本類型加了一層封裝而已,內部的數據格式並沒有發生變化,所以為了儘量減少代碼的改動,在包裝變數和基本變數之間賦值的時候,編譯器會自動進行裝箱和拆箱操作。所謂裝箱,指的是編譯器會預設調用valueOf方法,將基本類型的變數轉換成對應包裝類型的變數;至於拆箱,指的是編譯器會預設調用***Value方法,將包裝類型的變數轉換成對應基本類型的變數。通過自動裝箱和自動拆箱,Java代碼實現了包裝變數與基本變數的無縫銜接,從而簡化了相關處理代碼。
除了上面說的基本方法,Character類型針對文本加工操作,額外提供了一些字元處理方法,主要說明如下:
isDigit:判斷輸入的字元是否為數字。
isLetter:判斷輸入的字元是否為字母。
isLowerCase:判斷輸入的字元是否為小寫字母。
isUpperCase:判斷輸入的字元是否為大寫字母。
isSpaceChar:判斷輸入的字元是否為空格。
isWhitespace:判斷輸入的字元是否為空白(非數字非字母非標點)。
toLowerCase:輸入一個字元,如果原字元是大寫字母,則返回對應的小寫字母;否則原樣返回該字元。
toUpperCase:輸入一個字元,如果原字元是小寫字母,則返回對應的大寫字母;否則原樣返回該字元。
以上的字元處理方法,均需按照“Character.方法名稱(輸入字元)”的形式調用,具體的方法調用代碼舉例如下:
Character character = 'A'; // isDigit方法判斷字元是否為數字 boolean isDigit = Character.isDigit(character); System.out.println("isDigit="+isDigit); // isLetter方法判斷字元是否為字母 boolean isLetter = Character.isLetter(character); System.out.println("isLetter="+isLetter); // isLowerCase方法判斷字元是否為小寫 boolean isLowerCase = Character.isLowerCase(character); System.out.println("isLowerCase="+isLowerCase); // isUpperCase方法判斷字元是否為大寫 boolean isUpperCase = Character.isUpperCase(character); System.out.println("isUpperCase="+isUpperCase); Character line = '\n'; // isSpaceChar方法判斷字元是否為空格 boolean isSpaceChar = Character.isSpaceChar(line); System.out.println("isSpaceChar="+isSpaceChar); // isWhitespace方法判斷字元是否為空白(非數字非字母非標點) boolean isWhitespace = Character.isWhitespace(line); System.out.println("isWhitespace="+isWhitespace); // isWhitespace方法把字元轉換為大寫 char lowerCase = Character.toLowerCase(character); System.out.println("lowerCase="+lowerCase); // isWhitespace方法把字元轉換為小寫 char upperCase = Character.toUpperCase(character); System.out.println("upperCase="+upperCase);
更多Java技術文章參見《Java開發筆記(序)章節目錄》