07-字符集编码和字符串

目录

  • 什么是字符集和编码
  • 编码和字符集介绍
  • 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的值是
    }
}

猜你喜欢

转载自blog.csdn.net/qq_33254766/article/details/108797269