java 字符串文字筛选_Java的原始字符串文字

java 字符串文字筛选

似乎“ 原始字符串文字 ”即将出现在Java中。 JEP 326开始的(“原始字符串字面量”) 发行JDK-8196004 ,并宣布为“新JEP候选人” 3月2日的JEP和相关问题的人指出,“Java的仍然是一小群现代编程语言中的一个不为原始字符串提供语言级别的支持。” JEP及其相关问题特别引用了编程语言C, C ++ , C# (“ 逐字 ”), Dart , Go , Groovy , Haskell , JavaScript , Kotlin , Perl , PHP , Python , R , Ruby , Scala和Swift和“ Unix工具” bash , grep和sed进行了“基于它们的定界符以及使用原始和多行字符串的调查”。

JEP 326的“摘要”概述了拟议的Java原始字符串文字:“原始字符串文字可以跨越多行源代码,并且不能解释形式为\ n的转义序列,例如\ n或Unicode转义。 uXXXX。” 该JEP的“动机”部分添加了以下内容:“该JEP提出了一种新型的文字,即原始字符串文字 ,该文字保留了Java转义符和Java行终止符规范,以提供在许多情况下更易于阅读和维护的字符序列。而不是现有的传统字符串文字。” JEP 326 没有引入插值 ,实际上,在其“非目标”部分中将其排除:“原始字符串文字不直接支持字符串插值。 将来的JEP中可能会考虑插值。”

Java 长期以来 一直 希望使用 多行String文字 。 JEP 326 (“原始字符串文字”)当前列出了几个示例,这些示例说明了原始字符串文字如何使在Java中更容易实现常见事物,并且这些示例用法包括多行字符串 ,操作系统文件路径 , 正则表达式 , 关系数据库SQL语句 ,以及polygot( Java + JavaScript )。

当前版本的JEP 326指出,将通过使用“ 反引号 ”字符( ` )来表示Java的原始字符串文字,该字符在JEP中也描述为\u0060 ( Unicode“ Grave Accent” ),“ backquote ”,和“ 重音 ”。 我没有显示提议的语法的任何示例,因为JEP已经很好地列出了这些提议的原始字符串文字示例以及实现同一内容所需的传统Java代码的示例。 如果支持原始字符串文字,则可以轻松地将所需的当前语法与将来完成相同操作所需的语法进行比较。

对Java中的原始字符串文字的支持将为希望编写更具可读性的代码来支持JEP中描述的用例的Java开发人员提供便利。 它将为库甚至JDK代码提供类似的优势。 core-lib-devs邮件列表帖子“ Raw String Literal Library Support ” [ JDK-8196005 ]开始了“关于RSL库支持的讨论”。 (在这种情况下,“库支持”的上下文是JDK,RSL代表Raw String Literal。)。

在参考的“ 原始字符串文字库支持”一文中 , Jim Laskey提供了可能添加到String的方法列表,以利用原始字符串文字。 这些引发讨论的想法包括“线路支持”,“修剪”方法的增强,“保证金管理”和“逃生管理”。 其中一些由RSL促进,而其他一些由RSL必需。 引用的文章提供了每个示例的多个示例。

问题JDK-8198986指出“原始字符串文字需要一个新的JLS节”。 此问题链接到当前建议的部分 , 该部分将添加到引用的Java语言规范中 。

尽管JEP 326仍然只是“候选”,并且与特定版本的Java无关,但是最近在Java上的工作以及最近在邮件列表中进行的讨论(寻求与之相关的输入)使我对我们会看到多种形式保持谨慎的乐观态度。 Java字符串和其他原始字符串文字将在将来的版本中引入Java。

翻译自: https://www.javacodegeeks.com/2018/03/raw-string-literals-coming-to-java.html

java 字符串文字筛选

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

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

相关文章

计算机系统常识笔记

计算机系统常识操作系统篇LinuxWindowsAndroidIOSUNIXGNU(GNUs Not Unix!)MacOSDOS处理器(CPU)篇x86ARM处理器显卡(GPU)篇分类性能指标显示存储器显卡频率显存类型流处理器单元显存位宽总线接口类型按当前主流显卡等级划分编译器篇公司篇IntelAMDNVIDIAMicrosoft(微软)IBMOracl…

jsr303jsp页面怎么显示错误信息_springmvc使用JSR-303进行数据校验实例

项目中,通常使用较多的是前端的校验,比如页面中js校验以及form表单使用bootstrap校验。然而对于安全要求较高点建议在服务端进行校验。服务端校验:控制层controller:校验页面请求的参数的合法性。在服务端控制层controller校验&am…

spring @lazy_Spring @Lazy批注用例

spring lazySpring框架几乎可以毫不费力地为您解决许多常见的编程问题,但是其某些功能比其他功能鲜为人知。 在本文中,我们将仔细研究属于该组的Lazy批注。 阅读了几个示例之后,您应该能够将注释应用于日常开发任务。 1. 懒豆初始化 Spring的…

什么是虚数

在数学中,虚数就是形如 ab*i 的数,其中 a、b 是实数,且 b≠0,i -1。虚数这个名词是 17 世纪著名数学家笛卡尔创立,因为当时的观念认为这是真实不存在的数字。后来发现虚数 ab*i 的实部 a 可对应平面上的横轴&#xff…

计算机网络--接入互联网方式

接入网 指将端系统物理连接到其边缘路由器的网络。边缘路由器是端系统到任何其他远程端系统的路径上的第一台路由器。 1.家庭接入互联网方式 一般通过DSL、电缆、FTTH、拨号和卫星接入。 数字用户线(DSL) 住户通常从提供本地电话接入的本地电话公司处获得DSL因特网接入。因…

mysqls压力测试怎么用_MySQL压力测试工具使用

一、MySQL自带的压力测试工具——Mysqlslapmysqlslap是mysql自带的基准测试工具,该工具查询数据,语法简单,灵活容易使用.该工具可以模拟多个客户端同时并发的向服务器发出查询更新,给出了性能测试数据而且提供了多种引擎的性能比较。mysqlslap为mysql性能优化前后提供了直观的验…

java isempty_Optional.isEmpty()即将加入Java吗?

java isemptyJDK-8184693请求将方法isEmpty()添加到JDK 8引入的Optional类中。 调用Optional.isEmpty()等同于调用! Optional.isPresent() ! Optional.isPresent() 。 当前没有与JDK-8184693关联的JDK版本 ,但是它正在积极地工作,如最近发布的名为“ RFR…

如何理解文件存取单位 -- 块(block)

文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性…

知识图谱笔记

知识图谱知识分类陈述性知识过程性知识本体(Ontology)知识库(Knowledge Base)数据库(Database)语义网知识图谱详细解析知识图谱的生命周期知识建模(知识体系构建)知识获取知识融合(知识集成)知识存储、查询和推理(知识服务)知识推理知识应用领域知识图谱的应用金融证券领域医疗…

nslookup 包含在那个包中_nslookup命令详解

Nslookup 是一个监测网络中DNS服务器是否能正确实现域名解析的命令行工具。它在 Windows NT/2000/XP(在之后的windows系统也都可以用的,比如win7,win8等) 中均可使用,但在Windows 98中却没有集成这一个工具。Nslookup 必须要安装了TCP/IP 协议的网络环境之后才能使用…

java ee 8 api_Java EE 8安全性API:概述

java ee 8 api新的安全性API Java EE 8中添加的最重要的一项新功能可能就是新的安全性API。 此新API的主要动机是简化,标准化和现代化跨容器和实现处理安全性问题的方式。 他们做得很好。 由于三个新的注释使web.xml文件声明多余,Web身份验证的配置已实…

Linux 命令之 ln -- 为文件创建链接

文章目录一、命令介绍(一)符号链接的特点(二)硬链接的特点二、命令格式三、常用选项四、命令示例(一)创建硬链接(二)创建软链接一、命令介绍 Linux 具有为一个文件起多个名字的功能…

计算机网络笔记----概述

参考计算机网络自顶向下第七版和计算机网络谢希仁第七版计算机网络和Internet什么是互联网?具体构成描述互联网服务提供商(ISP)服务描述什么是协议?协议分层应用层(最高层)传输层(运输层)网络层:数据链路层和局域网物理层网络边缘接入网家庭接…

prima evb_用Priam设置Cassandra

prima evb前面已经解释了如何在AWS中设置Cassandra 。 所描述的设置有效,但在某些情况下可能还不够。 例如,它不能为您提供制作和还原备份的简便方法,添加新节点依赖于自定义python脚本,该脚本会随机选择一个种子。 因此&#xf…

Java 9:Process API的增强

Java 9对Process API进行了各种改进,用于控制和管理操作系统进程。 获取有关流程的信息 有一个新的ProcessHandle类,提供了进程的pid,父级和后代,以及有关开始时间和累积CPU时间的信息。 jshell> Process p new ProcessBui…

HTTP的操作过程

HTTP的操作过程 HTTP协议定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。HTTP是面向事务(一系列的信息交换,不可分割的整体)的应用层协议,它是万维网上能够可靠…

什么是绝对值?

绝对值是指一个数在数轴上所对应点到原点的距离,用 | | 来表示。|b-a| 或 |a-b| 表示数轴上“表示a的点”和“表示b的点”的距离。 正数 x 的绝对值表达式:| x | x,负数 x 的绝对值表达式:| x | -x,0 绝对值表达式&…

viewer vue 文档_vue中使用viewerjs

项目创建vue init webpack mytest001安装viewerjsnpm install viewerjs删掉生成的项目里面的helloWord.vue 修改路由 创建一个index.vueindex.vue代码:import Viewer from viewerjs;import viewerjs/dist/viewer.css;export default {name: HelloWorld,data() {return {imgArr:…

junit junit_JSON的JUnit Hamcrest Matcher

junit junit这篇文章展示了如何编写JUnit测试来检查对象是否与JSON字符串匹配。 如果您要实现REST服务并想测试您的服务是否产生了预期的JSON响应,那么这非常重要。 JSONassert是比较JSON对象的有用库。 首先,您必须将Java对象转换为JSON字符串&#xf…

HTTP报文格式

HTTP报文格式 HTTP规范[RFC 1945;RFC 26167;RFC 7540:包含了对HTTP 报文格式的定义。HTTP 报文有两种:请求报文和响应报文。 HTTP请求报文 从客户向服务器发送请求报文。 结构如图: 开始行 第一行为开始行也叫做…