一般情況下處理字符使用基本型別 char。
char ch = 'a';
char uniChar = '\u039A'; // Unicode 希臘字母 Omega
char[] charArray = { 'a', 'b', 'c', 'd', 'e' };
開發中若需用物件而非基本型別,Java 提供包裝類 Character。
Character ch = new Character('a'); // 手動裝箱
Character ch2 = 'a'; // 自動裝箱
char c = test('x'); // 自動拆箱
帶反斜槓 \ 的字符具有特殊含義,常用於列印格式化。
| 序列 | 說明 |
|---|---|
\t | 製表符 |
\b | 退格 |
\n | 換行 |
\r | 歸位 |
\f | 換頁 |
\' | 單引號 |
\\ | 反斜槓 |
System.out.println("She said \"Hello!\" to me.");
// 輸出: She said "Hello!" to me.
| 方法 | 說明 |
|---|---|
isLetter() | 判斷是否為字母 |
isDigit() | 判斷是否為數字 |
isWhitespace() | 判斷是否為空白字符 |
isUpperCase() | 判斷是否為大寫 |
isLowerCase() | 判斷是否為小寫 |
toUpperCase() | 轉大寫 |
toLowerCase() | 轉小寫 |
toString() | 轉為字符串 |
字符串是字符序列,在 Java 中是物件,由 String 類支援。
String greeting = "Hello world!"; // 字面值,編譯器建立 String 物件
char[] helloArray = { 'h', 'e', 'l', 'l', 'o', '.' };
String helloString = new String(helloArray); // 透過建構子
注意:String 為不可變。大量修改字符串時應使用 StringBuffer 或 StringBuilder。
String palindrome = "Dot saw I was Tod"; int len = palindrome.length(); // 17
String s1 = "Hello,"; String s2 = " world"; String s3 = s1.concat(s2); // "Hello, world" String s4 = "Hello," + " world" + "!"; // 更常用 + 號
// 使用靜態 format() 方法,回傳 String 而非直接列印
String fs = String.format("Float: %f, Int: %d, Str: %s", floatVar, intVar, stringVar);
System.out.println(fs);
| 方法 | 說明 |
|---|---|
charAt(int index) | 取指定索引字符 |
compareTo(String) | 字典序比較 |
concat(String) | 串接字符串 |
contains(CharSequence) | 是否包含子序列 |
endsWith(String) | 是否以指定後綴結尾 |
equals(Object) | 內容比較 |
equalsIgnoreCase(String) | 忽略大小寫比較 |
getBytes() | 編碼為位元組陣列 |
indexOf(String) | 搜尋子字符串首次出現索引 |
lastIndexOf(String) | 搜尋子字符串最後出現索引 |
length() | 字符串長度 |
matches(String regex) | 正則表達式匹配 |
replace(char, char) | 替換字符 |
replaceAll(String regex, String) | 正則替換所有匹配 |
split(String regex) | 分割字符串 |
startsWith(String) | 是否以指定前綴開頭 |
substring(int begin, int end) | 截取子字符串 |
toCharArray() | 轉字符陣列 |
toLowerCase() | 轉小寫 |
toUpperCase() | 轉大寫 |
trim() | 移除首尾空白 |
valueOf(...) | 各類型轉字符串 |