目录
- 什么是字符集和编码
- 编码和字符集介绍
- 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)
- 如何输出特殊字符
- 转义符语法和常用的转义符
- \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的值是
}
}