使用JDK 11在Java字符串上的新方法

Java的String类似乎将在JDK 11中获得一些新方法,该方法将于2018年9月发布。

错误号 错误标题 新的String方法 描述
JDK-8200425 字符串::行 lines() “使用专用的分隔符从源字符串中懒惰地提供行的字符串实例方法。”
JDK-8200378 String :: strip,String :: stripLeading,String :: stripTrailing strip() trim()的 “ Unicode感知”演变
stripLeading() “从一开始就删除Unicode空白”
stripTrailing() “从……端删除Unicode空白”
JDK-8200437 字符串:: isBlank isBlank() “如果字符串为空或仅包含空格,则返回true的实例方法”

可以在core-libs-dev邮件列表上的请求“ 兼容性和规范审查 ”(CSR)的消息中找到与这些方法有关的进展证据:

  • 请查看CSR:JDK-8200425 String#lines (2018年4月25日)
  • 请查看CSR:JDK-8200378 String#strip,String#stripLeading,String#stripTrailing (2018年4月25日)
  • 请查看CSR:JDK-8200425 String#lines (2018年4月25日)

这五个新方法中的四个的一个共同特征是,它们使用与旧方法(例如String.trim())不同的(较新的)“空白”定义。 错误JDK-8200373 [“ String :: trim JavaDoc应该澄清空间的含义”]甚至针对String.trim()方法( 邮件列表查看请求 )解决了这个问题:


当前的JavaDoc for String :: trim尚不清楚代码中使用了哪个“空格”定义。 在不久的将来,随着使用不同空间定义的其他修剪方法的出现,必须进行澄清。 String :: trim使用空格的定义作为小于或等于空格字符代码点(\ u0040)的任何代码点。较新的修整方法会将(空格)的定义用作任何传递给the时返回true的代码点。字符:: isWhitespace谓词。

在JDK 1.1中将isWhitespace(char)方法添加到Character中 ,但是直到JDK 1.5才将isWhitespace(int)方法引入Character类中。 添加了后一种方法(接受一个int类型的参数的方法)以支持补充字符 。 针对Character类的Javadoc注释定义了补充字符 (通常以基于int的“代码点”为模型)与BMP字符 (通常以单个字符为模型):


从U + 0000到U + FFFF的字符集有时被称为基本多语言平面(BMP) 代码点大于U + FFFF的字符称为补充字符 Java平台在char数组以及StringStringBuffer类中使用UTF-16表示形式。 在此表示形式中,辅助字符表示为一对char值…。因此, char值表示基本多语言平面(BMP)代码点,包括替代代码点或UTF-16编码的代码单元。 一个int值表示所有Unicode代码点,包括补充代码点。 仅接受char值的方法不能支持补充字符。 接受int值的方法支持所有Unicode字符,包括补充字符。

我在上面的引用中添加了粗体字 ,以强调“ 代码点 ”的重要性,“ 代码点 ” 在Java上下文中定义为 “可以在编码字符集中使用的值”。 在JDK 11中为String提出的五个新方法中,有四个在很大程度上依赖于Character.isWhitespace(int)包含的概念来确定如何“修剪”给定的字符串或确定给定的字符串是否为“空白”。

说到Unicode,还建议将 JEP 327 [“ Unicode 10”] 添加到JDK 11中。 正如JEP所说,其目的是“升级现有平台API以支持Unicode标准 10.0版 。” 对于任何希望使用此新版本支持的“ 56个新 表情符号字符”的人来说,这将是特别令人兴奋的消息。

结论

当前针对JDK 11提出的String新方法提供了一种更一致的方法来处理字符串中的空格,可以更好地处理国际化;提供了仅在字符串开头或字符串结尾处修剪空格的方法,并提供了专门用于传入原始字符串文字的方法 。

翻译自: https://www.javacodegeeks.com/2018/05/new-methods-on-java-string-with-jdk-11.html

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

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

相关文章

江南大学物联网工程学院数据库课程实验三作业3vb.net实验报告

一、开发环境 语言环境:Microsoft.NET Framework 4.6 SDK IDE:Microsoft Visual Studio Community 2015 二、代码及配置 1、Form1 Public Class Form1Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.LoadEnd SubPrivate …

[2021.07.25更新]循环冗余校验(CRC)的MATLAB实现

欢迎同步关注公众号【逆向通信猿】 CRC校验(循环冗余校验) 在计算CRC校验的时候,发现一个网站如下 http://www.ip33.com/crc.html 于是,想自己动手实现该网站计算CRC校验的功能,网站提供的在线计算工具是以十六进制来表示输入参数和结果的,为了方便MATLAB实现,本文提供…

江南大学物联网工程学院数据库课程实验四作业4vb.net实验报告

一、开发环境 语言环境:Microsoft.NET Framework 4.6 SDK IDE:Microsoft Visual Studio Community 2015 二、代码 Imports System.Data.SqlClient Public Class Form1 连接本机数据库并获取test_one数据库中的sc表数据 Dim mybind As BindingManagerB…

fftw库在windows下的的编译和配置

目录运行环境FFTW库的下载FFTW库的生成VS2017添加fftw库步骤运行环境 Visual Studio 2017 企业版 FFTW库的下载 首先在官网上下载fftw-3.3.5-dll32或fftw-3.3.5-dll64压缩包,解压。本人已经编译生成好的库下载地址:https://download.csdn.net/downloa…

深度学习在机器视觉应用领域的最新研究综述(物联网技术应用大作业)

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,无广告,忍不住分享一下给大家。(点击跳转人工智能学习资料) 摘要:机器视觉是人工智能正在快速发展的一个分支。简单说来&#xff0c…

MATLAB库函数hilbert(希尔伯特变换)的C语言实现(FFT采用FFTW库)

目录希尔伯特变换原理公式MATLAB官方帮助文档中希尔伯特变换算法常量和结构体定义C语言实现(FFTW库的float版,double版类似)希尔伯特变换原理公式 MATLAB官方帮助文档中希尔伯特变换算法 hilbert uses a four-step algorithm: Calculate the FFT of the input sequ…

netbeans7.4_NetBeans 7.4 Beta提示警告无效的异常处理

netbeans7.4有许多例子说明Java异常处理可能比首次出现时要困难得多,Josh Bloch专门将一整章的《 Effective Java》 (两个版本)专门用于异常处理。 Java中的检查异常模型 仍然 “ 有争议” 。 我很高兴看到我最近下载的NetBeans 7.4 beta有一…

在厚度仅十几微米的电池隔膜找缺陷?人工智能说,能行(人工智能应用案例)

原文链接:https://www.paddlepaddle.org.cn/support/news?actiondetail&id2104 “我们的质检要做的是在厚度仅十几微米的电池隔膜上找出所有微小缺陷,如果没有检测出来,就很可能使新能源汽车的电池在使用过程中出现问题,甚至…

MATLAB库函数unwrap(相位解卷绕)的C语言实现

什么是相位解卷绕 Q = unwrap(P) Q = unwrap(P) corrects the radian phase angles in a vector P by adding multiples of 2π when absolute jumps between consecutive elements of P are greater than or equal to the default jump tolerance of π radians. If P is a …

准确率超90%、1秒发出报警,人工智能助国网山东实现无人巡检(人工智能应用案例)

原文链接:https://mp.weixin.qq.com/s/Jh2YLY-4um79ucdHIs5NTg 众所周知,深度学习框架是人工智能的基础技术“底座”,在各大传统产业上也有着巨大的潜力尚待挖掘。5月20日,由深度学习技术及应用国家工程实验室与百度联合主办的“…

混合多云每个人都应避免的3个陷阱(第2部分)

如果您已经完全控制了内部数据中心,但又不能停止利用和支付过多的资源,那么如何期望防止这些成本转嫁到您的云策略中呢? 每天都在肆意宣传云,但每个人都应避免三个陷阱。 从云,混合云到混合多云,您被告知这…

MATLAB库函数upfirdn(分数倍采样率变换)的C语言实现【姊妹篇1基于std::vector】

upfirdn原理 yout = upfirdn(xin,h,p,q) upfirdn的功能在MATLAB官方帮助文档中说得很清楚 通过插零实现 p p p倍上采样对上采样之后的信号用给定的 h h h(通常为低通滤波器)进行滤波对滤波结果进行

基于PaddlePaddle实现高尔夫球场的遥感检测(人工智能应用案例)

原文链接:https://www.paddlepaddle.org.cn/support/news?actiondetail&id2103 1 . 背景及意义 随着高尔夫球运动在我国的兴起,关于高尔夫球场大量占用土地资源、污染环境、耗水量大且公益性差的争议越来越多。国家从2004年开始制定一系列相关政策…

在Jersey测试中模拟SecurityContext

泽西极有可能编写与泽西一起编写的REST-API集成测试。 只需扩展类JerseyTest并继续就可以了。 我遇到一个问题,我不得不模拟SecurityContext ,以便SecurityContext包含一个特殊的UserPrincipal 。 挑战在于Jersey在测试中将SecurityContext包装在自己的…

第一类修正贝塞尔函数的C语言实现

第一类修正贝塞尔函数公式 Iν(z)(z2)ν∑(k0)∞(z24)kk!Γ(νk1)I_{\nu}(z)\left(\frac{z}{2}\right)^{\nu} \sum_{(k0)}^{\infty} \frac{\left(\frac{z^{2}}{4}\right)^{k}}{k ! \Gamma(\nuk1)}Iν​(z)(2z​)ν(k0)∑∞​k!Γ(νk1)(4z2​)k​ 其中,Γ(a)\Gamma…

MATLAB库函数firls(最小二乘线性相位FIR滤波器设计)的C语言实现

firls函数功能 FILS设计了一种线性相位FIR滤波器,它可以最小化理想分段线性函数与滤波器在一组期望频带上的幅值响应之间的加权积分平方误差。 b = firls(n,f,a) b = firls(n,f,a,w) b = firls(n,f,a,ftype) b = firls(n,f,a,w,ftype)f是在0和1之间的范围内指定的频率点对的…

数电实验一-初识Multisim和Basys3

特别说明:该系列内容均是本人实验记录,无盗取侵权之嫌,仅供参考,请多动手实践! 一、实验目的 详见报告 二、实验仪器设备 详见报告 三、实验设计过程 使用Multisim为Basys3板卡创建一个PLD设计并进行验证。 1.创建P…

自动化学科前沿讲座作业 基于深度学习的工厂人员监测系统设计

1 背景及应用场景 在工业复杂生产环境下,作业人员的安全问题至关重要。大多数工业企业采用人眼观察视频的方式对作业人员位置进行判断,这种方式长时间会使管理者出现疲劳问题,效率非常低下,遇到安全问题也不能进行及时的处理。采用…

MATLAB库函数resample(重采样函数)的C语言实现【姊妹篇1基于std::vector】

resample的原理 MATLAB中resample函数最简单的参数如下: y = resample(x,p,q) 以p/q乘以原始采样速率对输入序列x重新采样。resample在x上应用抗锯齿FIR低通滤波器,补偿滤波器带来的延迟。 根据以下2篇文章 MATLAB库函数upfirdn(分数倍采样率变换)的C语言实现(采用了STL::v…

多重继承java_Java中的多重继承与组合vs继承

多重继承java有时我写了几篇有关Java 继承 , 接口和组成的文章。 在这篇文章中,我们将研究多重继承,然后了解组成优于继承的好处。 Java中的多重继承 多重继承是创建具有多个超类的单个类的能力。 与其他一些流行的面向对象的编程语言&#…