字符串是零个或多个字符组成的序列。在实际开发中处理最多的数据就是字符串,在 Java 程序中,字符串由 java.lang.String 类的对象来表示。但是需要注意的是,字符串类型并不是属于Java中支持的 8 种基本数据类型。它是引用数据类型,具有自己的属性和方法。
本小节主要关注字符串字面量的使用以及字符串的基本操作。并不探讨与之相关的其他话题,比如其内部存储及不可变性等
14.1 字符串声明与赋值
在Java中声明字符串使用String这个JDK内置的类,注意String中第一个字母是大写的,这也符合Java中类的命名规范:
String s1; // 声明一个字符串变量s1,但是未显式赋初始值
为了给字符串变量赋值,可以使用字面量字面量,它的表示有以下两种形式:
- 使用双引号的字面量,其中可以使用转义字符(序列)
- 文本块,Java 15正式引入
首先看一下最常见的字面量:
String s1 = ""; // 一个空字符串
System.out.println(s1);
String s2 = "Hello 老谭!"; // 若干字符组成的字符串
System.out.println(s2);
String s3 = "1+1=2\t12+2=4\t4+4=9"; //带有制表符转义字符的字符串
System.out.println(s3);
String s4 = "这是第一行\r\n这是第二行"; //带有换行转义字符的字符串
System.out.println(s4);
14.2 文本块
在Java 15之前,如果遇到有一些特殊场景需要处理多行的文本,常见的写法如下:
String s1 = "<html>\n" +
" <body>\n" +
" <p>Hello World.</p>\n" +
" </body>\n" +
"</html>\n";
经过字符串拼接及换行转义字符,输出的结果就是一个规范的HTML页面代码。但是代码中可读性并不好,特别是如果页面内容较多的时候。
为了方便表示多行字符串。Java 15引入了文本块的概念,它的目的是:
- 简化跨越多行的字符串,避免对换行等特殊字符进行转义,简化编写Java程序
- 增强Java程序中字符串的可读性
上面的代码如果使用文本块,它的语法形式如下:
String s2 = """
<html>
<body>
<p>Hello World.</p>
</body>
</html>
""";
可以看到字符串字面量使用三对双引号包含文本内容,且内容可读性非常好。不过使用文本块需要注意的是:
-
引号之间不能有空格
-
开始的三个引号后必须换行,不能是这样的写法:
String s2 = """<html> <body> <p>Hello World.</p> </body> </html> """;
14.3 字符串的基本操作
1、字符串拼接:两个或多个字母直接使用数学运算符 + 即可进行拼接
String s1 = "Hello "+ "Java"+"!";
System.out.println(s1); //输出 Hello Java!
2、获取字符串的长度,这里使用到String这个类所提供的方法length:
String s2="Hello Java !";
System.out.println(s2.length()); // 输出 12
14.4 小结
本小节对String作为数据类型如何声明及如何使用字面量为其赋值进行了介绍,同时也介绍了Java在简化多行字符串表示时引入的文本块语法。

被折叠的 条评论
为什么被折叠?



