1. 程式人生 > >Java開發筆記(三十三)字元包裝型別

Java開發筆記(三十三)字元包裝型別

正如整型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開發筆記(序)章節目錄