前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Java文本块

Java文本块

作者头像
FunTester
发布于 2020-07-06 14:59:07
发布于 2020-07-06 14:59:07
1.8K00
代码可运行
举报
文章被收录于专栏:FunTesterFunTester
运行总次数:0
代码可运行

文本块是JDK增强建议 (JEP 355),可以在JDK13JDK14中作为预览语言功能使用。它计划在JDK15中成为永久性功能。文本块是一个字符串文字,它跨越多行,并且不需要大多数转义字符。

动机

在标准Java字符串中嵌入XMLJSONSQL之类的格式会变得很烦人。例如,由于需要转义,因此只有两个键的简单JSON代码片段在Java中几乎无法流畅阅读:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
String json =
        "{\n" +
            "\"name\": \"FunTester\",\n" +
            "\"age\": 30\n" +
        "}";

文本块来拯救

使用新的文本块功能,我们可以将代码重写为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
String text = """
        {
            "name": "FunTester",
            "age": "30"
        }
        """;

使用三引号**"""**打开和关闭文本块。文本从下一行开始。打开文本块后,该行的其余部分需要保持空白。

如果我们将此字符串打印到控制台,我们将看到:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    "name": "FunTester",
    "age": "30"
}

可能你已经注意到,左侧的缩进已被去除。这是因为文本块的处理分为三个步骤:

  • 行终止符被标准化为LF字符。这样可以避免不同平台(例如WindowsUnix)之间的兼容性问题。
  • 附带的前置空格和所有尾随空格均被删除。偶然的前导空格是通过找到所有行的前导空格的公共数量来确定的。
  • 转义序列被解释。文本块可以包含与标准字符串相同的转义序列(例如\t\n)。请注意,已经添加了两个新的转义序列:\s用于显式空间,\<eol>作为连续指示符(稍后在\<eol>上有更多介绍)。

前置空格

如果我们明确需要前置空格,则可以使用indent()方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
String text = """
        {
            "name": "FunTester",
            "age": "30"
        }
        """.indent(4);

这会将4个额外的前导空格添加到我们的JSON代码段中。控制台输出看起来像这样:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    {
        "name": "FunTester",
        "age": "30"
    }

或者,我们可以从封闭的三引号中删除4个前导空格以产生相同的结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
String text = """
        {
            "name": "FunTester",
            "age": "30"
        }
    """; // 将这4个空格向左移动会产生4个额外的前导空格

新的转义序列

使用新的转义序列,我们可以将单行的内容拆分为多行,而无需创建实际的行终止符。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
String text = """
        1
        2 \
        3 \
        4
        5
        """;

控制台输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1
2 3 4
5

转义三引号

如果我们需要在文本块中写入三引号,则只需要转义第一引号即可:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
String text = """
        测试文本 \"""
        """;

控制台输出:

测试文本 """

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FunTester 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
动态系统建模与仿真MATLAB Simulink的应用案例
动态系统建模与仿真是工程、控制、物理等领域中的重要研究方向。MATLAB Simulink提供了一种直观的图形化环境,使得建模与仿真变得更加高效。本文将深入探讨动态系统建模的基本概念,并通过具体的应用案例展示如何使用MATLAB Simulink进行动态系统的建模与仿真。
一键难忘
2025/01/08
4400
基于车辆运动学的智能车轨迹跟踪控制方法
我国智能驾驶车辆起源于1980年,然而在1992年国防科技大学研发真正第一辆智能车。2003年,清华大学研发的THMR-V可在清晰的车道线上完成车道保持,而且它的最高时速可达到150km/h,如图1所示。
一点人工一点智能
2023/06/06
1.3K0
基于车辆运动学的智能车轨迹跟踪控制方法
Matlab仿真PID控制(带M文件、simulink截图和参数分析)
线性定常系统的控制中,PID是个非常常见的控制方式,如果可以通过Matlab仿真出PID的控制效果图,那么对系统设计时的实时调试将会容易得多。在这里我们将会以一个利用系统辨识参数的PID设计为为例展示Matlab仿真PID的过程。 首先需要对一个未知的系统的参数进行辨识,以延迟环节可以忽略不计的电机调速系统为例。将时间戳导入xdata向量,对应的时刻转速导入ydata向量,进行系统辨识
全栈程序员站长
2022/09/06
5K0
Matlab仿真PID控制(带M文件、simulink截图和参数分析)
基于Simulink实现模糊PID仿真
        传统 PID 控制器自出现以来,凭借其控制原理简单、稳定性好、工作可靠、易于实现等优点成为工业控制主要技术,常被用于机器人驱动控制。但是传统 PID 参数整定异常麻烦,当被控对象的结构和参数具有一定的不确定性,无法对其建立精确的模型时,传统 PID 无法进行实时调节, 为了获得更好的速度控制性能和循迹动态响应,但常规PID 控制难以解决被控对象数学模型复杂、非线性以及时变不确定性等系统问题,而自适应模糊 PID 控制可以有效解决此问题。本文依靠 MATLAB/SIMULINK 的模糊逻辑工具箱的Fuzzy Logic Controller 与常规 PID Controller 结合,针对水下航行器控制系统进行PID仿真实验。
2024/12/15
1K0
基于Simulink实现模糊PID仿真
基于BP神经网络PID控制+Simulink仿真
最近在学习电机的智能控制,上周学习了基于单神经元的PID控制,这周研究基于BP神经网络的PID控制。
全栈程序员站长
2022/09/02
8.6K5
基于BP神经网络PID控制+Simulink仿真
【STM32H7的DSP教程】第49章 STM32H7的自适应滤波器实现,无需Matlab生成系数(支持实时滤波)
自适应滤波器能够根据输入信号自动调整滤波系数进行数字滤波。作为对比,非自适应滤波器有静态的滤波器系数,这些静态系数一起组成传递函数。
Simon223
2021/09/26
9780
【STM32H7的DSP教程】第49章       STM32H7的自适应滤波器实现,无需Matlab生成系数(支持实时滤波)
【自动控制原理】Simulink搭建仿真模型(信号发生器、比较点、传递函数、示波器)
在MATLAB中,可以使用Simulink来建立自动控制原理的仿真模型。Simulink是MATLAB的一个工具箱,用于建立、仿真和分析动态系统模型。可以使用Simulink中提供的各种组件和模块来模拟开环系统和闭环系统。
Qomolangma
2024/07/30
2.3K0
【自动控制原理】Simulink搭建仿真模型(信号发生器、比较点、传递函数、示波器)
【Simulink】粒子群算法(PSO)整定PID参数(附代码和讲解)
大家好,又见面了,我是你们的朋友全栈君。 目录 0.背景 1.粒子群算法 1.1.算法简介 1.2.算法步骤 1.3.算法举例 2.PID自整定 2.1.基于M文件编写的PID参数自整定 *2.2.复杂系统的PID自整定(基于simulink仿真) 2.2.1.PSO优化PID的过程详解 2.2.2.在PSO优化过程中修改参数价值权重 阅读前必看: 本代码基于MATLAB2017a版本,如果版本不同可能会报错 请从set_para.m文件开始运行,其他M文件(+下载的资源包里面的slx文件)放在
全栈程序员站长
2022/06/28
1.7K0
【Simulink】粒子群算法(PSO)整定PID参数(附代码和讲解)
【Matlab】简单控制系统建模(控制系统工具箱)
控制系统应用是MATLAB和Simulink的重点应用领域,它包括了被控对象建模、控制器设计、自动代码生成部署和系统验证全流程。具体如下:
DevFrank
2024/07/24
3360
【Matlab】简单控制系统建模(控制系统工具箱)
滑模控制器理论推导和matlab/simulink实例分享
前天有个微信好友咨询了一些滑模控制器的设计和理论推导,故整理一下相关的资料和内容分享,
用户9925864
2023/09/05
1.6K0
滑模控制器理论推导和matlab/simulink实例分享
【STM32F407的DSP教程】第49章 STM32F407的自适应滤波器实现,无需Matlab生成系数(支持实时滤波)
完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第49章 STM32F407的自适应滤波器实现,无需Ma
Simon223
2021/09/26
6930
【STM32F407的DSP教程】第49章       STM32F407的自适应滤波器实现,无需Matlab生成系数(支持实时滤波)
基于神经网络的机器人学习与控制:回顾与展望
机器人因其高效的感知、决策和执行能力,在人工智能、信息技术和智能制造等领域中具有巨大的应用价值。目前,机器人学习与控制已成为机器人研究领域的重要前沿技术之一。各种基于神经网络的智能算法被设计,从而为机器人系统提供同步学习与控制的规划框架。首先从神经动力学(ND)算法、前馈神经网络(FNNs)、递归神经网络(RNNs)和强化学习(RL)四个方面介绍了基于神经网络的机器人学习与控制的研究现状,回顾了近30年来面向机器人学习与控制的智能算法和相关应用技术。最后展望了该领域存在的问题和发展趋势,以期促进机器人学习与控制理论的推广及应用场景的拓展。
一点人工一点智能
2023/04/27
2.3K0
基于神经网络的机器人学习与控制:回顾与展望
粒子群优化算法的实现方式_matlab粒子群优化算法
粒子群优化算法属于进化算法的一种,通过追随当前搜索到的最优值来寻找全局最优。粒子群算法也称粒子群优化算法(Particle Swarm Optimization,PSO),PSO有几个关键概念:粒子、优化函数、适值(Fitness Value)、飞行方向、飞行距离。
全栈程序员站长
2022/11/10
1.9K0
粒子群优化算法的实现方式_matlab粒子群优化算法
一文尽览 | 2023最新自动驾驶车辆控制全面综述!(状态估计/轨迹控制/框架应用等)
车辆控制是自动驾驶汽车、车联网和自动化汽车中最关键的挑战之一,在车辆安全、乘客舒适性、运输效率和节能方面至关重要。本次调查试图对车辆控制技术的现状进行全面彻底的概述,重点关注从微观层面的车辆状态估计和轨迹跟踪控制到宏观层面的CAV协同控制的演变。首先从车辆关键状态估计开始,特别是车辆侧滑角,这是车辆轨迹控制的最关键状态,以讨论具有代表性的方法。然后提出了用于AVs的符号车辆轨迹跟踪控制方法。除此之外,还进一步审查了CAV的协作控制框架和相应的应用程序。最后对未来的研究方向和挑战进行了讨论。本次调查旨在深入了解AVs和CAV车辆控制的最新技术,确定关键的重点领域,并指出进一步探索的潜在领域。
公众号-arXiv每日学术速递
2023/08/26
4.4K0
一文尽览 | 2023最新自动驾驶车辆控制全面综述!(状态估计/轨迹控制/框架应用等)
考虑绕障时耗的四轮全向移动机器人轨迹跟踪控制
为保证移动机器人动态环境下的运行安全性,须结合轨迹重规划实现实时绕障;针对路径重规划会带来额外的计算负担、难以保证控制系统实时性的问题,为实现高效高精移动机器人运动控制,提出考虑绕障时耗的四轮全向移动机器人轨迹跟踪控制器。
一点人工一点智能
2023/07/16
8430
考虑绕障时耗的四轮全向移动机器人轨迹跟踪控制
朴素贝叶斯模型(NBM)详解与在Matlab和Python里的具体应用
今天给大家介绍机器学习的一种分类模型朴素贝叶斯模型,这是我整理了好久的文章,希望大家能学到一点知识我也是欣慰的^_^o~ 努力! 点击阅读原文可获得工具包连接与密码:sm2s 回复贝叶斯Matlab可获取全部文章 Word版 贝叶斯 Thomas Bayes,英国数学家。他首先将归纳推理法用于概率论基础理论,并创立了贝叶斯统计理论,对于统计决策函数、统计推断、统计的估算等做出了贡献。 贝叶斯决策理论是主观贝叶斯派归纳理论的重要组成部分。贝叶斯决策就是在不完全情报下,对部分未知的状态用主观概率估计,然后用
量化投资与机器学习微信公众号
2018/01/29
5.3K0
ORB-SLAM——a Versatile and Accurate Monocular SLAM System)
本文提出了ORB-SLAM,在大小场景、室内室外环境下都可以实时操作的一种基于特征的单目SLAM系统。系统对复杂的剧烈运动具有鲁棒性,允许宽基线的闭环和重定位,且包含完整的自动初始化。基于最近几年的优秀算法之上,我们从头开始设计了一种新颖的系统,它对所有SLAM任务使用相同的特征:追踪、建图、重定位和闭环。合适策略的存在使得选择的重建点和关键帧具有很好的鲁棒性,并能够生成紧凑的可追踪的地图,只有当场景内容发生变化地图才改变,从而允许长时间操作。本文从最受欢迎的数据集中提供了27个序列的详尽评估。相对于其他最先进的单目SLAM方法,ORB-SLAM实现了前所未有的性能。为了社会的利益,我们将源代码公开。
全栈程序员站长
2022/06/26
8580
ORB-SLAM——a Versatile and Accurate Monocular SLAM System)
自动控制理论笔记
\(G(s) = \frac{a}{s+a}\) \(\frac{1}{a}\)是时间常数\(\tau\),对应上升为0.63 \(4\tau\)对应阶跃响应0.98
列夫托尔斯昊
2020/08/25
2K0
自动控制理论笔记
Greenplum 实时数据仓库实践(10)——集成机器学习库MADlib
MADlib是一个基于SQL的数据库内置的开源机器学习库,具有良好的并行度和可扩展性,有高度的预测精准度。MADlib最初由Pivotal公司与伯克利大学合作开发,提供了多种数据转换、数据探索、概率统计、数据挖掘和机器学习方法,使用它能够简易地对结构化数据进行分析和学习,以满足各行各业的应用需求。用户可以非常方便地将MADlib加载到数据库中,从而扩展数据库的分析功能。2015年7月MADlib成为Apache软件基金会的孵化器项目,经过两年的发展,于2017年8月毕业成为Apache顶级项目。最新的MADlib 1.18.0可以与PostgreSQL、Greenplum和HAWQ等数据库系统无缝集成。Greenplum MADlib扩展提供了在Greenplum数据库中进行机器学习和深度学习工作的能力。
用户1148526
2022/04/13
1.1K0
Greenplum 实时数据仓库实践(10)——集成机器学习库MADlib
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(二)
在第一章中,我提到最常见的监督学习任务是回归(预测值)和分类(预测类)。在第二章中,我们探讨了一个回归任务,使用各种算法(如线性回归、决策树和随机森林)来预测房屋价值(这将在后面的章节中进一步详细解释)。现在我们将把注意力转向分类系统。
ApacheCN_飞龙
2024/05/24
3620
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(二)
推荐阅读
动态系统建模与仿真MATLAB Simulink的应用案例
4400
基于车辆运动学的智能车轨迹跟踪控制方法
1.3K0
Matlab仿真PID控制(带M文件、simulink截图和参数分析)
5K0
基于Simulink实现模糊PID仿真
1K0
基于BP神经网络PID控制+Simulink仿真
8.6K5
【STM32H7的DSP教程】第49章 STM32H7的自适应滤波器实现,无需Matlab生成系数(支持实时滤波)
9780
【自动控制原理】Simulink搭建仿真模型(信号发生器、比较点、传递函数、示波器)
2.3K0
【Simulink】粒子群算法(PSO)整定PID参数(附代码和讲解)
1.7K0
【Matlab】简单控制系统建模(控制系统工具箱)
3360
滑模控制器理论推导和matlab/simulink实例分享
1.6K0
【STM32F407的DSP教程】第49章 STM32F407的自适应滤波器实现,无需Matlab生成系数(支持实时滤波)
6930
基于神经网络的机器人学习与控制:回顾与展望
2.3K0
粒子群优化算法的实现方式_matlab粒子群优化算法
1.9K0
一文尽览 | 2023最新自动驾驶车辆控制全面综述!(状态估计/轨迹控制/框架应用等)
4.4K0
考虑绕障时耗的四轮全向移动机器人轨迹跟踪控制
8430
朴素贝叶斯模型(NBM)详解与在Matlab和Python里的具体应用
5.3K0
ORB-SLAM——a Versatile and Accurate Monocular SLAM System)
8580
自动控制理论笔记
2K0
Greenplum 实时数据仓库实践(10)——集成机器学习库MADlib
1.1K0
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(二)
3620
相关推荐
动态系统建模与仿真MATLAB Simulink的应用案例
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验