千家信息网

Java14中Text块怎么用

发表于:2025-11-11 作者:千家信息网编辑
千家信息网最后更新 2025年11月11日,这篇文章主要介绍了Java14中Text块怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在Java中,文本块是多行字符串文字。这
千家信息网最后更新 2025年11月11日Java14中Text块怎么用

这篇文章主要介绍了Java14中Text块怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

在Java中,文本块多行字符串文字。这意味着我们不需要陷入显式的行终止符,字符串连接以及分隔符的混乱局面,而这些分隔符通常用于编写普通的字符串文字。

Java 文本块在Java 13中可用( JEP 355 )和Java 14( JEP 368 )作为预览函数。它计划成为Java 15的标准函数( JEP 378 ) 。

要启用此预览函数,我们必须使用 -enable-preview-source 14 (两个连字符)标志。

文本块语法

  • 文本块包含多行文本,并使用三个双引号字符(""")作为其开始和结束定界符

  • 开头的三个双引号字符后总是一个行终止符。

  • 我们不能在一行上包含定界符和文本块。分隔符必须在自己的行上。内容只能从下一行开始。

  • 如果文本内容包含单引号或双引号,则无需将其转义。

String dbSchema =        """                        CREATE TABLE 'TEST'.'EMPLOYEE'                        (                          'ID' INT NOT NULL DEFAULT 0 ,                          'FIRST_NAME' VARCHAR(100) NOT NULL ,                          'LAST_NAME' VARCHAR(100) NULL ,                          'STAT_CD' TINYINT NOT NULL DEFAULT 0                         );                                        """;

尽管上面的文本块看起来非常简单,但仍然有很多事情发生在幕后。让我们来探索。

类似字符串

  • 从文本块生成的实例的类型为 java.lang.String ,其特征与传统的双引号字符串相同。这包括对象表示和插入字符串池

  • 我们可以使用文本块作为 String 类型的方法参数传递。

  • 文本块可以在可以使用字符串文字的任何地方使用。例如,我们可以将其用于字符串连接。

String string = "Hello";String textBlock = """                                        World""";String joinedString =  string + textBlock;System.out.println(joinedString);

程序输出。

HelloWorld

文本块缩进

文本块保留其内容的缩进,让我们参考第一个示例。

String dbSchema =    """                        CREATE TABLE 'TEST'.'EMPLOYEE'                        (                          'ID' INT NOT NULL DEFAULT 0 ,                          'FIRST_NAME' VARCHAR(100) NOT NULL ,                          'LAST_NAME' VARCHAR(100) NULL ,                          'STAT_CD' TINYINT NOT NULL DEFAULT 0                         );                                        """;System.out.println(dbSchema);

程序输出:

|CREATE TABLE 'TEST'.'EMPLOYEE'|(|  'ID' INT NOT NULL DEFAULT 0 ,|  'FIRST_NAME' VARCHAR(100) NOT NULL ,|  'LAST_NAME' VARCHAR(100) NULL ,|  'STAT_CD' TINYINT NOT NULL DEFAULT 0|);

在这里,我们有两种缩进类型:

第一个缩进是从行首到所有行中的" CREATE" 字。可能会根据各种因素(例如格式化插件或开发者的选择)而增加或减少。

第二次缩进是从字符'(''到'ID'的开始。在大多数情况下,缩进时间为4或8个空格。

添加一些缩进

假设我们想在上面的示例中为所有行在左侧添加2个制表符缩进。为此,我们可以仔细定位右三引号,以将两个制表符精确地向左移动。推杆位于应从其基本缩进处开始的完全相同的位置。

String dbSchema =       """                        CREATE TABLE 'TEST'.'EMPLOYEE'                        (                              'ID' INT NOT NULL DEFAULT 0 ,                              'FIRST_NAME' VARCHAR(100) NOT NULL ,                              'LAST_NAME' VARCHAR(100) NULL ,                              'STAT_CD' TINYINT NOT NULL DEFAULT 0                         );        """;System.out.println(dbSchema);

程序输出:

|           CREATE TABLE 'TEST'.'EMPLOYEE'|               (|                     'ID' INT NOT NULL DEFAULT 0 ,|                     'FIRST_NAME' VARCHAR(100) NOT NULL ,|                     'LAST_NAME' VARCHAR(100) NULL ,|                     'STAT_CD' TINYINT NOT NULL DEFAULT 0|               );

另外,请注意,Java编译器还会删除文本块中每一行上的尾随空格

行终止符

不同的平台具有不同的行终止符。 Java不参与平台检测,而是将文本块中的所有行终止符标准化为\n

如果需要平台行终止符,则可以使用 String::replaceAll("\n",System.lineSeparator())

String string = "Hello";String textBlock = """                                        World""";String joinedString =  string + textBlock;joinedString = joinedString.replaceAll("\n", System.lineSeparator());System.out.println(joinedString);

转义序列

很多时候,我们只想将内容写到程序的多行中,但实际上它们只是一个字符串内容。在这种情况下,我们可以使用换行符换码符,即单个反斜杠'\'。它禁止包含隐式换行符。

String dbSchema = """        CREATE TABLE 'TEST'.'EMPLOYEE'\        (\        'ID' INT NOT NULL DEFAULT 0 ,\        'FIRST_NAME' VARCHAR(100) NOT NULL ,        'LAST_NAME' VARCHAR(100) NULL ,\        'STAT_CD' TINYINT NOT NULL DEFAULT 0 \        );        """;System.out.println(dbSchema);

程序输出:

|CREATE TABLE 'TEST'.'EMPLOYEE'('ID' INT NOT NULL DEFAULT 0 ,'FIRST_NAME' VARCHAR(100) NOT NULL ,'LAST_NAME' VARCHAR(100) NULL ,'STAT_CD' TINYINT NOT NULL DEFAULT 0 );

如果由于某种原因我们不希望删除缩进,可以使用'\s'(ASCII字符32,空格)转义序列。在任何行的末尾使用它可以保证该行将具有所有空格字符,直到遇到'\s'

String dbSchema =         """        CREATE TABLE 'TEST'.'EMPLOYEE'          \s        (                                       \s          'ID' INT NOT NULL DEFAULT 0 ,         \s           'FIRST_NAME' VARCHAR(100) NOT NULL , \s          'LAST_NAME' VARCHAR(100) NULL ,       \s          'STAT_CD' TINYINT NOT NULL DEFAULT 0  \s        );                                      \s        """;System.out.println(dbSchema.replaceAll("\s", "."));

程序输出。 在此程序输出中,我将所有空格字符替换为点'.' 让您了解其效果。

CREATE.TABLE.'TEST'.'EMPLOYEE'...........(..........................................'ID'.INT.NOT.NULL.DEFAULT.0.,.............'FIRST_NAME'.VARCHAR(100).NOT.NULL.,....'LAST_NAME'.VARCHAR(100).NULL.,..........'STAT_CD'.TINYINT.NOT.NULL.DEFAULT.0...);.......................................

感谢你能够认真阅读完这篇文章,希望小编分享的"Java14中Text块怎么用"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

字符 文本 字符串 程序 引号 输出 内容 空格 篇文章 一行 函数 分隔符 平台 文字 类型 转义 多行 不同 相同 三个 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 数据库连接池的并发问题 网络安全法 的重要意义包括哪些 华为手机系统更新服务器更新失败 nas服务器账户密码忘记了 车辆网络安全兼职 郭家有人犯罪数据库留下单 永兴学电脑软件开发培训中心 dba数据库工作内容 常见的服务器型号 大学计算机网络技术真题 宣城电力软件开发外包公司 网络安全法与其他法律的联系 网络安全收抄报图片大全 锐思数据库怎么样 通过租服务器会被查到历史记录吗 网络技术通俗理解 怎样针对数据库做性能测试 我的是服务器下载 通信达网络安全股票代码 济南有实力的浪潮存储服务器批发 购买精准客户数据库 饿了么异地数据库实战 软件开发读取通讯录 伺服服务器故障报警代码 导出数据库某一列数据 20台电脑服务器需要多少钱 天弘互联网科技有限公司招聘 农安智能化网络安全共同合作 近20年上市的数据库公司 如何更改设置个人服务器
0