目錄
- 什麼是字元集和編碼
- 編碼和字元集介紹
- ASCII 碼和轉義符(escape character)
- 字元串的“加法”
1. 什麼是字元集和編碼
- 什麼是字元集(Charset)
- 字元集就是字元的集合。一般會包含一種語言的字元。比如 GBK,是包含所有常用漢字字元的字元集。ASCII 是包含英文字元的字元集。
- 字元就是 Java 中的 char ,char 是 character 的簡寫。
- 什麼是編碼(Encoding)
- char 代表一個字元,char 的本質也是數字。将數字映射到字元,就叫編碼。
- 将一個字元集映射到數字,就是給這個字元集編碼。編碼是有标準的,所有的計算機系統按照同一個編碼标準執行。
- 有時候編碼和字元集會混用。
2. 編碼和字元集介紹
- 常用的字元集簡介
- ASCII碼,ASCII表:https://baike.baidu.com/item/ASCII/309296
- Unicode 包含世界上所有常用字元,編碼也有幾種,包括 UTF-8(8-bit Unicode Transformation Format ),UTF-16 等。
- Unicode,GBK 等所有常用的字元集,都會相容 ASCII。舉個例子,字元 A 在這些所有常用的字元集裡,都是對應數字 65。
- Java中的字元集
- Java 中用的是 UTF-16 編碼的 Unicode。
- UTF-16 用16個 bit,即兩個byte,這也是char占用兩個byte的原因。當把 char 轉成數字的時候,需要用 int。
3. ASCII 碼和轉義符(escape character)
- 如何輸出特殊字元
- ASCII 碼+char,通過 ASCII 表可以找到需要的字元對應的數字。将這個數字轉換為 char, 然後輸出這個 char。「假如鍵盤上的 A 壞了,這個時候我們需要輸入 A 怎麼辦呢?就可以使用這個方法」 ASCII 表:https://baike.baidu.com/item/ASCII/309296
- 轉義符。轉義符用來給字元指派,也可以用在字元串裡面,作為字元串中的一個字元。
- 轉義符文法和常用的轉義符
- \n,換行符
- \",雙引号
- \t,制表符
- \uXXXX,unicode 編碼對應的字元。
public class ComplexCharInString {
public static void main(String[] args) {
String content = "a\tb\tcc\tee\t";
String align = "1111222233334444";
System.out.println(content);
System.out.println(align);
}
}
a b cc ee
1111222233334444
public class ComplexChar {
public static void main(String[] args) {
int a = 65;
char cha = (char) a;
char zang = '\u81e7';
System.out.println(cha);
System.out.println(zang);
}
}
A
臧
4. 字元串的“加法”
- 将變量穿插在字元串中輸出
- 字元串可以和任何類型進行加法運算,則會将這個值的字元拼接到字元串上。
- 字元串也可以使用 += 操作符來拼接
- 字元串的加法運算符符合加法運算符本身的優先級
- 字元串不是 Java 中的基本資料類型
- 字元串類型的名字叫做 String
- 雖然 String 不是 Java 中的基礎類型,但是也可以使用類似的文法 String str = “abc”; 來建立。開始的時候将其當成基礎類型,更容易了解。
- String 不是 Java 中的保留字。
- String 的加法不會改變原 String 變量的值,改變其值要 用指派語句
public class StingConcat {
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = a + b;
System.out.println("a + b=" + c); // a + b=30
boolean aBiggerThanB = a > b;
System.out.println("a > b 是" + aBiggerThanB + "的"); // a > b 是false的
System.out.println("a + b=" + a + b); // a + b=1020
System.out.println("a + b =" + (a + b)); // a + b =30
System.out.println("a * b=" + a * b); // a * b=200
}
}
public class StringVariable {
public static void main(String[] args) {
int a = 10;
String str = "a的值是";
str = str + a;
System.out.println(str); // a的值是10
String s2 = "a的值是";
System.out.println(str + a); // a的值是1010
System.out.println(s2); // a的值是
}
}