网站首页 > 精选教程 正文
3.6.10 文本块
利用java 15 新增的文本块(text block)特性,可以很容易地提供跨多行的字符串字面量。文本块以””” 开头,后面是一个换行符,并以另一个 “”” 结尾:
String greeting = """
Hello
World
""";
文本块比相应的字符串字面量更易于读写:
“Hello\nWorld\n”
这个字符串包含两个 \n:一个在 Hello 后面,另一个在World 后面。开始””” 后面的换行符不作为内容的一部分。
如果不想要最后一行后面的换行符,可以让””” 紧跟在最后一个字符后面
String greeting ="""
Hello
World""";
文本块特别适合包含用其他语言编写的代码,如SQL 或HTML 。可以直接将那些代码粘贴到三引号之间
String html ="""
<div class=”Warning”>
Beware of those who say “Hello “ to the world
</div>
"""
需要说明的是,一般不用对引号转义。只有两种情况下需要对引号转义
- 文本块以一个引号结尾
- 文本块中包含三个或更多引号组成的一个序列。
- 遗憾的是,所有的反斜线都需要转义。
- 常规字符串中的所有转义序列在文本块中也有同样的作用。
- 有一个转义序列只能在文本块中使用。行尾的 \ 会把这一行与下一行连接起来。例如:
"""
Hello ,my name is Hal. \
Please enter you name:""";
等同于
"Hello ,my name is Hal. Please enter you name:"
文本块会对行结束符进行标准化,删除末尾的空白符,并把Windows 的行结束符(\r\n) 改为简单的换行符(\n)。尽管不太可能,不过假如确实需要保留末尾的空格,这种情况下可以把最后一个空格转换为一个 \s 转义序列
对于前导空白符则更为复杂。考虑一个从左边界缩进的典型的变量声明。文本块也可以缩进:
String html = """
<div class=”Warning”>
Beawre of those who say “Hello” to the world
</div>
""";
将去除文本块中所有行的公共缩进。实际字符串为
“<div class=\”Warning\”>\n Beawre of those who say \“Hello\” to the world\n</div>\n”
- 注意,第一行和第三行没有缩进。
- 你的IDE 很可能会使用制表符、空格或者制表符以及空格缩进所有文本块。
- Java很清晰,它没有规定制表符的宽度。空白符前缀必须与文本块中的所有行完全匹配。
- 去除缩进过程中不考虑空行。不过,结束””” 前面的空白符很重要。一定要锁紧到想要去除的空白符的末尾。
警告:要当心缩进文本块的公共前缀中混用制表符和空格的情况。不小心漏掉一个空格很容易得到一个缩进错误的字符串。
提示:如果一个文本块包含非Java代码,实际上最好沿左边界放置。这样可以与Java代码区分开,而且可以为长代码行留出更多空间。
猜你喜欢
- 2024-11-28 java 核心技术-12版 卷Ⅰ- 5.2.3相等测试与继承
- 2024-11-28 java 核心技术-12版 卷Ⅰ- 5.2.4 hashCode方法
- 2024-11-28 Java入门书单
- 2024-11-28 java 核心技术-12版 卷Ⅰ- 4.3.7 隐式参数与显式参数
- 2024-11-28 全网最完整的免费java教程讲义系列(四)——java的流程控制
- 2024-11-28 java 核心技术-12版 卷Ⅰ- 4.6 对象构造 4.6.1重载
- 2024-11-28 java 核心技术-12版 卷Ⅰ- 3.10 数组
- 2024-11-28 java 核心技术-12版 卷Ⅰ- 4.3 自定义类
- 2024-11-28 2019年Java核心技术我整理了200多页pdf,今天分享给你
- 2024-11-28 java 核心技术12版卷1 - 1.3 Java applet 与 Internet
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)