当前位置: 首页 > news >正文

jdk17新特性——文本块(即多行的字符串)增强

目录

    • 一、文本块(即多行的字符串)概述
    • 二、文本块(即多行的字符串)示例
      • 2.1、jdk17之前 多行字符串处理方式
      • 2.2、jdk17及以后版本 多行字符串处理方式
      • 2.3、注意事项
    • 三、文本块(即多行的字符串)转义字符示例
      • 3.1、jdk17及以后版本 多行字符串的转义字符处理方式示例一
      • 3.2、jdk17及以后版本 多行字符串的转义字符处理方式示例二
    • 四、文本块(即多行的字符串)变量替换示例

一、文本块(即多行的字符串)概述

  • 文本块功能,文本块指多行的字符串,使用连续的三个双引号来包围一段带换行的文字,它避免了换行转义的需要,并支持Stringformat。

  • 同时添加了两个新的转义字符

     \       置于行尾,用来将两行连接为一行\s      单个空白字符
    
  • 文本块功能在idk13的JEP 355: Text Blocks (Preview)作为预览特性引入,并在idk14的JEP 368: Text BlocksSecond Preview)第二次预览。最终在idk15的JEP 378: Text Blocks成为正式特性

二、文本块(即多行的字符串)示例

2.1、jdk17之前 多行字符串处理方式

  • jdk17之前 多行字符串处理方式代码示例

    package com.xz.jdk17.day2;/*** @author: xz* @since: 2024/1/23 22:09* @description: jdk17之前 多行字符串处理方式*/
    public class Test1 {public static void main(String[] args) {String html ="<html>\n" +"<body>\n"+"<h1>Hello World!</h1>\n" +"</body>\n"+"</html>\n";System.out.println(html);}
    }
    
  • 输出结果
    在这里插入图片描述

2.2、jdk17及以后版本 多行字符串处理方式

  • jdk17及以后版本 多行字符串处理方式代码示例

    package com.xz.jdk17.day2;/*** @author: xz* @since: 2024/1/23 22:13* @description: jdk17及以后版本 多行字符串处理方式*/
    public class Test2 {public static void main(String[] args) {String html ="""<html><body><h1>Hello World!</h1></body></html>""";System.out.println(html);}
    }
  • 输出结果
    在这里插入图片描述

2.3、注意事项

  • 前一个"""之后要换行,否则编译不过。
  • 后一个"““可以不换行,直接写在最后一个字符之后,此时文本的最后没有换行符;如果后一个””"选择换一行写,就代表文本最后是一个换行符。

三、文本块(即多行的字符串)转义字符示例

3.1、jdk17及以后版本 多行字符串的转义字符处理方式示例一

  • jdk17及以后版本 多行字符串的转义字符处理方式代码示例

    package com.xz.jdk17.day2;/*** @author: xz* @since: 2024/1/23 22:15* @description: jdk17及以后版本 多行字符串处理方式 转义字符*/
    public class Test3 {public static void main(String[] args) {String str ="""hello world,\hello java,\作者:xz。hello python,\作者:xz。""";System.out.println(str);}
    }
  • 输出结果
    在这里插入图片描述

3.2、jdk17及以后版本 多行字符串的转义字符处理方式示例二

  • jdk17及以后版本 多行字符串的转义字符处理方式代码示例

    package com.xz.jdk17.day2;/*** @author: xz* @since: 2024/1/23 22:19* @description:*/
    public class Test4 {public static void main(String[] args) {String str ="""hello world\s,hello java\s,hello python\s,作者:xz\s。""";System.out.println(str);}
    }
  • 输出结果
    在这里插入图片描述

四、文本块(即多行的字符串)变量替换示例

  • 文本块(即多行的字符串)变量替换代码示例

    package com.xz.jdk17.day2;/*** @author: xz* @since: 2024/1/23 22:32* @description: jdk17及以后版本 多行字符串变量处理方式*/
    public class Test5 {public static void main(String[] args) {String html ="""<html><body><h1>%s</h1></body></html>""";System.out.println(String.format(html,"作者:xz"));}
    }
  • 输出结果
    在这里插入图片描述

相关文章:

jdk17新特性——文本块(即多行的字符串)增强

目录 一、文本块(即多行的字符串)概述二、文本块(即多行的字符串)示例2.1、jdk17之前 多行字符串处理方式2.2、jdk17及以后版本 多行字符串处理方式2.3、注意事项 三、文本块(即多行的字符串)转义字符示例3.1、jdk17及以后版本 多行字符串的转义字符处理方式示例一3.2、jdk17及…...

阿里云ECS使用docker搭建mysql服务

目录 1.确保正确安装好docker 2.安装mysql镜像 3.创建容器&#xff08;设置端口映射、目录映射&#xff09; 1.确保正确安装好docker 安装教程&#xff1a; 阿里云ECS(CentOS镜像)安装docker-CSDN博客https://blog.csdn.net/qq_62262918/article/details/135686614?spm10…...

Windows给docker设置阿里源

windows环境搭建专栏&#x1f517;点击跳转 Windows系统的docker设置阿里源 文章目录 Windows系统的docker设置阿里源1.获得镜像加速器2.配置docker 由于我们生活在中国大陆&#xff0c;所以外网的访问总是那么慢又困难&#xff0c;用docker拉取几兆的小镜象还能忍受&#xff…...

安裝火狐和穀歌流覽器插件FoxyProxy管理海外動態IP代理

代理生態系統擁有大量有用的實用程式&#xff0c;使海外代理IP代理設置的使用變得簡單起來。其中一種類型叫做代理管理工具&#xff0c;像FoxyProxy就是該工具集比較受歡迎的。 本文將全面解析FoxyProxy擴展的功能和特性、Foxyproxy怎麼下載、以及如何在穀歌流覽器和火狐流覽器…...

C++重新入门-函数重载

1.函数重载的定义 C函数重载&#xff08;Function Overloading&#xff09;是指在同一作用域内&#xff0c;可以定义多个函数&#xff0c;它们具有相同的名称但参数列表不同的特性。通过函数重载&#xff0c;可以使用相同的函数名来实现不同的操作&#xff0c;提高了代码的可读…...

niushop靶场漏洞查找-文件上传漏洞等(超详细)

实战漏洞-niushop 一.端口扫描 http://www.xxx.com/index.php?s/admin/login 这里查询到后面的url有且仅有一个&#xff0c;目测估计是后台 访问url 发现确实是后台 二、找漏洞 Sql注入漏洞1&#xff1a; 点击进去 修改id www.xxx.com/index.php?s/goods/goodslist&…...

Bit Extraction and Bootstrapping for BGV/BFV

参考文献&#xff1a; [GHS12] Gentry C, Halevi S, Smart N P. Better bootstrapping in fully homomorphic encryption[C]//International Workshop on Public Key Cryptography. Berlin, Heidelberg: Springer Berlin Heidelberg, 2012: 1-16.[AP13] Alperin-Sheriff J, Pe…...

七八分钟快速用k8s部署springboot前后端分离项目

前置依赖 k8s集群&#xff0c;如果没有安装&#xff0c;请先安装 kubectl &#xff0c;客户端部署需要依赖 应用镜像构建 应用镜像构建不用自己去执行&#xff0c;相关镜像已经推送到docker hub 仓库&#xff0c;如果要了解过程和细节&#xff0c;可以看一下&#xff0c;否…...

中移(苏州)软件技术有限公司面试问题与解答(2)—— Linux内核内存初始化的完整流程1

接前一篇文章&#xff1a;中移&#xff08;苏州&#xff09;软件技术有限公司面试问题与解答&#xff08;1&#xff09;—— 可信计算国密标准 本文参考以下文章&#xff1a; 启动期间的内存管理之初始化过程概述----Linux内存管理(九) Linux初始化 特此致谢&#xff01; 本…...

蓝桥杯、编程考级、NOC、全国青少年信息素养大赛—scratch列表考点

1、小小情报员&#xff08;202309scratch四级24题&#xff09; 1.准备工作 &#xff08;1&#xff09;选择背景 Colorful City&#xff1b; &#xff08;2&#xff09;保留角色小猫&#xff0c;选择角色Ballerina。 2.功能实现 &#xff08;1&#xff09;角色小猫初始位置…...

1.23 力扣图论

841. 钥匙和房间 有 n 个房间&#xff0c;房间按从 0 到 n - 1 编号。最初&#xff0c;除 0 号房间外的其余所有房间都被锁住。你的目标是进入所有的房间。然而&#xff0c;你不能在没有获得钥匙的时候进入锁住的房间。 当你进入一个房间&#xff0c;你可能会在里面找到一套不…...

Vue学习笔记9--vuex(专门在Vue中实现集中式状态(数据)管理的一个Vue插件)

一、vuex是什么&#xff1f; 概念&#xff1a;专门在Vue中实现集中式状态&#xff08;数据&#xff09;管理的一个Vue插件&#xff0c;对vue应用中多个组件的共享状态进行集中式的管理&#xff08;读/写&#xff09;&#xff0c;也是一种组件间通信的方式&#xff0c;且适用于…...

Operation

contents 服务器一、相关概念1.1 云服务器与实例1.2 关于域名解析延时与80端口1.3 关于备案1.4 关于SSL证书1.5 关于SSL证书的签发1.6 关于SSL证书的部署1.7 关于LNMP和LAMP1.8 关于bt面板 二、单服务器单一级域名多网站2.1 创建多个二级域名2.2 解析二级域名绑定到服务器上2.3…...

Kong关键概念 - 服务(Services)

服务&#xff08;Services&#xff09; 在Kong Gateway中&#xff0c;服务是代表外部上游&#xff08;upstream&#xff09;API或微服务的实体。例如&#xff0c;数据转换微服务、计费API等。 服务的主要属性是其URL。您可以使用一个字符串来指定URL&#xff0c;或者通过分别…...

IDEA更改页面不重启

IDEA更改页面不重启 idea若依 修改包名 idea 1、修改IDEA设置 File -> Settings -> Build Execution Deployment -> Build Project automatically 勾选2、勾选Running Ctrl Shift Alt / 然后选择 Registry&#xff0c;勾上 Compiler.autoMake.allow.when.app.runn…...

golang学习-channel管道

1、定义 管道是golang语言提供的goroutine间的通讯方式&#xff0c;channel可以让一个goroutine发送特定的值给另一个goroutine的通讯机制。 管道是引用类型。 golang语言中channel是一种特殊的类型。像一个队列一样&#xff0c;先进先出。 var 变量 chan 元素类型 var ch1 …...

oracle 12 查询数据库锁

在Oracle 12c中&#xff0c;查询数据库锁信息可以通过以下视图进行&#xff1a; v$locked_object&#xff1a;这个视图显示了当前被锁定的对象&#xff08;如表、行等&#xff09;的信息。 SELECT l.session_id sid, s.serial#, l.locked_mode,o.object_name,s.osuser,s.userna…...

【LeetCode-135】分发糖果(贪心)

LeetCode135.分发糖果 题目描述 老师想给孩子们分发糖果&#xff0c;有 N 个孩子站成了一条直线&#xff0c;老师会根据每个孩子的表现&#xff0c;预先给他们评分。 你需要按照以下要求&#xff0c;帮助老师给这些孩子分发糖果&#xff1a; 每个孩子至少分配到 1 个糖果。…...

5G_射频测试_发射机测量(四)

6.2 Base station output power 用于测量载波发射功率的大小&#xff0c;功率越大小区半径越大但是杂散也会越大 载波功率&#xff08;用频谱仪测&#xff09;天线口功率&#xff08;用功率计测&#xff09;载波功率是以RBW为单位的filter测量的积分功率不同带宽的多载波测试时…...

MySQL经典50题

目录 一、数据表介绍 二、练习题 1. 查询" 01 "课程比" 02 "课程成绩高的学生的信息及课程分数 2. 查询同时存在" 01 "课程和" 02 "课程的情况 3. 查询存在" 01 "课程但可能不存在" 02 "课程的情况…...

Java 8 Stream API 入门到实践详解

一、告别 for 循环&#xff01; 传统痛点&#xff1a; Java 8 之前&#xff0c;集合操作离不开冗长的 for 循环和匿名类。例如&#xff0c;过滤列表中的偶数&#xff1a; List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis&#xff1f;2.为什么要使用redis作为mysql的缓存&#xff1f;3.什么是缓存雪崩、缓存穿透、缓存击穿&#xff1f;3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

Robots.txt 文件

什么是robots.txt&#xff1f; robots.txt 是一个位于网站根目录下的文本文件&#xff08;如&#xff1a;https://example.com/robots.txt&#xff09;&#xff0c;它用于指导网络爬虫&#xff08;如搜索引擎的蜘蛛程序&#xff09;如何抓取该网站的内容。这个文件遵循 Robots…...

LLM基础1_语言模型如何处理文本

基于GitHub项目&#xff1a;https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken&#xff1a;OpenAI开发的专业"分词器" torch&#xff1a;Facebook开发的强力计算引擎&#xff0c;相当于超级计算器 理解词嵌入&#xff1a;给词语画"…...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生&#xff0c;我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要&#xff0c;而您认真负责的教学态度&#xff0c;让课程的每一部分都充满了实用价值。 尤其让我…...

纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join

纯 Java 项目&#xff08;非 SpringBoot&#xff09;集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别

【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而&#xff0c;传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案&#xff0c;能够实现大范围覆盖并远程采集数据。尽管具备这些优势&#xf…...

解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用

在工业制造领域&#xff0c;无损检测&#xff08;NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统&#xff0c;以非接触式光学麦克风技术为核心&#xff0c;打破传统检测瓶颈&#xff0c;为半导体、航空航天、汽车制造等行业提供了高灵敏…...

webpack面试题

面试题&#xff1a;webpack介绍和简单使用 一、webpack&#xff08;模块化打包工具&#xff09;1. webpack是把项目当作一个整体&#xff0c;通过给定的一个主文件&#xff0c;webpack将从这个主文件开始找到你项目当中的所有依赖文件&#xff0c;使用loaders来处理它们&#x…...