美文网首页
5.字符和字符串

5.字符和字符串

作者: 呦丶耍脾气 | 来源:发表于2025-05-08 15:13 被阅读0次

在Java中,字符和字符串是两个不同的类型。

字符类型

Java在内存是使用Unicode表示字符,所以,一个英文字符和一个中文字符都用一个char类型表示,它们都占用两个字节。

赋值

char是基本数据类型,保存一个Unicode字符

  • 字符赋值
char s1 = 'A';
char s2 = '你';
  • Unicode编码赋值
    转义字符\u+Unicode编码来表示一个字符
// 注意是十六进制:
char c3 = '\u0041'; // 'A',因为十六进制0041 = 十进制65
char c4 = '\u4f60'; // '你',因为十六进制4f60 = 十进制20320

char类型赋值必须要有一个,char s1 = 'AB';char s1 = '';都会编译错误

获取Unicode

int s3 = 'A';//65 十六进制0041 = 十进制65
int s4 = '你';//20320 十六进制4f60 = 十进制20320

字符串类型

字符串类型String是引用类型,我们用双引号""表示字符串,一个字符串可以存储0个到任意个字符

赋值

String s = ""; // 空字符串,包含0个字符
String s1 = "A"; // 包含一个字符
String s2 = "Hello World"; // 包含11个字符,其中有一个空格
String s3 = "你好 ABC"; // 包含6个字符,其中有一个空格
String s = "ABC\n\u4e2d\u6587"; // 包含6个字符: A, B, C, 换行符, 中, 文

需要注意转义字符,转义字符只计算转义后的字符
常见的转义字符包括:
\" 表示字符"
\'表示字符'
\\ 表示字符\
\n 表示换行符
\r 表示回车符
\t 表示Tab
\u#### 表示一个Unicode编码的字符

字符串连接

使用+连接任意字符串和其他数据类型

String s1 = "Hello";
String s2 = "World";
System.out.println(s1 + " " + s2);//Hello World
String s3 = "年龄:";
String s4 = "18";
System.out.println(s3 + s4);//年龄:18

如果用+连接字符串和其他数据类型,会将其他数据类型先自动转型为字符串,再连接

多行字符串

  • java13以前
String s = "first line \n"
         + "second line \n"
         + "end";
  • java13
    使用"""...."""
String s5 = """
     first line
     second line
     end""";

多行字符串前面共同长度的空格会被去掉

不可变特性

Java的字符串除了是一个引用类型外,还有个重要特点,就是字符串不可变。

String s1 = "hello";
System.out.println(s1);//hello
s1 = "你好";
System.out.println(s1);//你好

String s1 = "hello";时,JVM虚拟机先创建字符串"hello",然后,把字符串变量s1指向它:

      s
      │
      ▼
┌───┬───────────┬───┐
│   │  "hello"  │   │
└───┴───────────┴───┘

紧接着,执行s1 = "你好";时,JVM虚拟机先创建字符串"你好",然后,把字符串变量s1指向它:

      s ──────────────┐
                      │
                      ▼
┌───┬───────────┬───┬───────────┬───┐
│   │  "hello"  │   │  "world"  │   │
└───┴───────────┴───┴───────────┴───┘

原来的字符串"hello"还在,只是我们无法通过变量s访问它而已。因此,字符串的不可变是指字符串内容不可变。

空值null

引用类型的变量可以指向一个空值null,它表示不存在,即该变量不指向任何对象。

String s1 = null; // s1是null
String s2 = s1; // s2也是null
String s3 = ""; // s3指向空字符串,不是null

相关文章

  • JAVA之字符串总结

    一、字符串总结 1.字符串和字符串相加 2.字符串和数字相加 3.计算字符串的长度 4.判断字符串是否相等 5.字...

  • 4.字符串String

    目录0.字符串介绍1.字符串定义和初始化2.字符串元素访问3.字符串连接4.字符串分割5.字符串修改6.字符串判断...

  • 2020-05-17

    1.字符串编码存储: 2.实例: 3.内存中: 4.选择: 5.字符串和bytes: 6.字符串和bytes转换:...

  • 07-Swift字符串

    1.字符串字面量 2.初始化空字符串 3.字符串可变性 4.使用字符 5.连接字符串和字符 6.格式字符串 7.字...

  • php常用的字符串函数

    1.字符串和数组之间的相互转化 2.字符串的截取 3.字符串位置查找 4.去除空格和字符串填补函数 5.字符串的大...

  • ES6常用的新特性

    1.let和const定义变量2.变量的结构赋值: 3.字符串的遍历: 4.模板字符串: 5.字符串的方法: 6....

  • 基础知识三:字符串操作

    1.定义 2.字符串是否为空 3.字符串长度 4.字符串遍历 5.增 5.1 字符串增加 5.2 增加字符 6.删...

  • OC字符串截取、拼接、分割...... (iOS开发)

    1.截取字符串 2.字符串大小写转换 3.分割字符串 4.字符串转化为数字型再计算 5.字符串比较 6.字符串拼接...

  • 4.4Python数据类型(4)之字符串函数

    返回总目录 目录:1.字符串的查找计算2.字符串的转换3.字符串的填充压缩4.字符串的分割拼接5.字符串的判定 (...

  • Swift.String的18种常用拓展.

    1.String截取的相关操作. 2.字符串插入. 3.计算字符串尺寸. 4.根据字符串拆分数组. 5.将字符串中...

网友评论

      本文标题:5.字符和字符串

      本文链接:https://www.haomeiwen.com/subject/ftgsijtx.html