jdk13至15——文本块特性

news2024/11/24 20:34:13

文本块在jdk13中第一次预览,jdk14第二次预览,jdk15正式版;

终于不用在多行字符串中加一堆\n和一堆\"和一堆+了;

之前需要这么麻烦:

	@Test
	void test() {
		String s = "testabcd\n"
				+ "aaa\n"
				+ "bbb\n";
		System.out.println(s);
		System.out.println("=".repeat(10));
	}

现在只需一对"""就能搞定:

	@Test
	void test() {
		String s = """
				testabcd
				aaa
				bbb
				""";
		System.out.println(s);
		System.out.println("=".repeat(10));
	}

运行结果都是:

关于行首缩进,按照每行最小的缩进为准,包括结尾的"""行也进行计算:

运行结果:

还可以在换行符前使用“\”消除换行,或者在行尾使用\s添加空白字符并保留行结尾的空白字符:

	@Test
	void test() {
		String s = """
				testabcd
				aaa\
				bbb
				""";
		System.out.println(s);
		System.out.println("=".repeat(10));
	}

每行结尾的空白字符会被去掉:

使用\s后可保留(\s也算一个空白字符):

文本块里也可以使用%d%s等格式化,单引号双引号也不需要转义:

	@Test
	void test() {
		String s = """
				{"name":"%s", "age":%d}
				""";
		System.out.println(s.formatted("Tom", 13));
		System.out.println("=".repeat(10));
	}

随着jdk的迭代,String类也断断续续新增了一些好用的方法:

jdk11的repeat(int count)可以将字符串重复多遍,strip()去除收尾空白字符,stripLeading()去掉开头的空白字符,stripTrailing()去掉结尾的空白字符,isBlank()判断字符串长度是不是0,lines()将字符串按照换行转换成stream;

jdk12的indent(int n)可以添加缩进,transform(Function f)可以对字符串进行转化;

jdk15的formatted(Object... args)可以格式化字符串,stripIndent()去掉文本块行首位空白字符;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/555318.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【机器学习】贝叶斯分类与概率图模型

文章目录 第五章 贝叶斯分类与概率图模型5.1、贝叶斯决策与贝叶斯分类5.1.1、贝叶斯基本原理5.1.2、朴素贝叶斯分类器(naive bayes)5.1.3、半朴素贝叶斯 5.2、有向图与无向图一般概念5.2.1、有向图5.2.2、无向图5.2.3、条件独立性5.2.4、图模型推理的概念…

海睿思分享 | 浅谈企业数据资产管理

1、什么是数据资产 与实物资产、无形资产一样,数据资产首先表现为是一种资源。也就是说,并非所有的数据资源都可以升级为数据资产。作为“资产”的数据资源,大体表现为以下两种形式:一是可以通过合理应用创造出新的价值。二是通过…

【k8s】Jenkins实现Java springboot应用CI、CD实践 【二】

一、运行Jenkins流水线流程思路: 场景1:常规java应用,使用jenkins pipeline 交付到Kubernetes集群中1、准备好java代码、Dockerfile、 deploy. yaml资源清单文件CI阶段: 1、获取代码 2、漏洞扫描 3、检测漏洞扫描结果,如果正常则…

OpenAI ChatGPT3.5-turbo实际解决问题能力评测

OpenAI ChatGPT3.5-turbo实际解决问题能力评测 ​ 程序员在coding的时候会经常遇到需要查阅资料的情况,最好的结果是直接能拿到一份好用的demo版本code,本次我们来评测:bing搜索和chatGPT3.5,解决实际问题:“html 图片…

【Proteus仿真】51单片机矩阵按键+中断+数码管显示+串口输出

【Proteus仿真】51单片机矩阵按键中断数码管显示串口输出 📌相关篇《【Proteus仿真】51单片机矩阵按键扫描外部中断使用》📍《【Proteus仿真】51单片机串口输出实验》🎈 《【Proteus仿真】51单片机定时器计数共阴数码管驱动显示》 &#x1f5…

PMP-敏捷管理知识总结

敏捷管理 敏捷管理 01敏捷开发是一种以人为核心、迭代、循序渐进的开发方法,在敏捷开发中,项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征 。 敏捷项目管理简化了繁琐的流程和文档管理&…

考研考公太卷了,出国留学能弯道超车吗?

这届年轻人太难了! 国内高考人数越来越多,考上好大学的难度很大。2022年,高考报名人数是1193万,但考上本科的只有466万,考上双一流大学的不足50万,上双一流大学考生的比例不到5%。 高考只是卷的开始&…

软件代码设计-小优化(五)

产品需求: 按照天统计策略信收信人数和收信次数。以前策略信只有发送是没有收集的,现在要数据咋办,得收集啊。 设计方案: 因为策略信的发送是在一个单独的工程里,没有连接数据库。于是收集策略信放到了redis的list里&a…

第03章 流程控制语句

流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。 程序设计中规定的三种流程结构,即: 顺序结构 程序从上到下逐行地执行,中间没有任何判断和跳转。 分支结构 根据条件&#xff0…

软件测试理论----测试设计方法论

1、测试用例格式 (1)用例编号:用例的唯一标识,要求具有易识别性和易维护性,能能够根据用例编号识别用例的目的和作用,一般格式为:A-B-C-D 其中 A:一般表示产品或者项目名称B&#…

Linux的启动流程

文章目录 Linux的启动流程BIOS、boot loader与kernel加载BIOSboot loader加载内核检测硬件与 initramfs 的功能 Linux的启动流程 本文章参考: [Uncertainty!!]的Linux的启动流程 Linux的启动流程是一个非常复杂的过程,下面是对Linux启动流程的详细分析&a…

JDBC-Java与数据库之间的桥梁

1、JDBC 1.1、数据的持久化 持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用。大多数情况下,特别是企业级应用, 数据持久化意味着将内存中的数据保存到硬盘上加以”固化”,而持久化的实现过程大多通过各种关系数…

IO流详解

IO流 1. 文件 1.1 什么是文件 文件对大家来说都不陌生: 文件是保存数据的地方,它可以保存文字、图片、视频等等例如大家平时使用的word文档、Excel文档、PPT文档等都是文件 1.2 文件流 文件在程序中是以流的形式来操作的流是指数据在数据源&#x…

mydumper - 备份恢复工具

文章目录 介绍部署安装功能 参数详解mydumpermyloader配置文件 实际示例操作性能验证 补充definerlock 总结相关链接 介绍 部署安装 # 当前最新 release wget https://github.com/mydumper/mydumper/releases/download/v0.14.4-8/mydumper-0.14.4-8.el7.x86_64.rpm# 安装 rpm…

Linux 之 firewalld 防火墙

目录 firewalld概述firewalld 与 iptables 的区别:firewalld 区域的概念firewalld防火墙预定义了9个区域:firewalld 数据处理的流程 firewalld防火墙的配置方法:永久保存配置 firewalld概述 firewalld防火墙是Centos7系统默认的防火墙管理工具&#xff…

数据分析与预处理常用的图和代码

1.训练集和测试集统计数据描述之间的差异作图&#xff1a; def diff_color(x):color red if x<0 else (green if x > 0 else black)return fcolor: {color}(train.describe() - test.describe())[features].T.iloc[:,1:].style\.bar(subset[mean, std], alignmid, colo…

国内做校园信息化的龙头企业公司有哪些?

随着数字化转型的加速&#xff0c;越来越多的学校开始寻求校园信息化的解决方案&#xff0c;相比于传统信息化模式&#xff0c;国内有哪些做校园信息化做得比较好的企业&#xff1f;他们采用的又是什么样的方式&#xff1f; 一文带你了解&#xff0c;零代码平台搭建校园信息化…

Android 14 又来了?别扶!抬起我来吧!

Android 14 又来了&#xff1f;别扶&#xff01;抬起我来吧&#xff01; 大家好&#xff0c;好久不见&#xff0c;从去年底写完年终总结之后就再也没有更新过文章&#xff0c;之前最多也就间隔一两个月时间&#xff0c;但这回间隔时间确实有点长&#xff0c;基本快半年了&…

每日一练 | 网络工程师软考真题 Day7

1、如果希望别的计算机不能通过ping命令测试效劳器的连通情况&#xff0c;可以 &#xff08;1&#xff09; 。如果希望通过默认的Telnet端口连接效劳器&#xff0c;那么下面对防火墙配置正确的选项是 &#xff08;2&#xff09; 。 &#xff08;1&#xff09; A&#xff0…

为什么说2023年是学华为认证的最佳时机?学华为认证有什么优势?

华为认证数通方向2016年以前叫数通&#xff0c;2017年开始改为R&S&#xff08;路由交换&#xff09;&#xff0c;2021年正式升级为Datacom。 新版数通认证更聚焦于技术在现实工作场景中的应用&#xff0c;并融入了大量新技术新应用&#xff0c;实用价值更高。 通过系统学…