java - 在java中基于大写拆分

标签 java uppercase

<分区>

任何人都知道如何将 FirstName 转换为 First Name

拆分必须根据 Upper-Case letters 进行,但应排除第一个字母。

我知道如何使用拆分来做到这一点。 除了拆分功能之外,还有其他方法可以做到这一点。

最佳答案

不是真的split , 只是 replaceAll :

str.replaceAll("(?!^)([A-Z])", " $1")

此解决方案假设您不想在大写英文字母表前添加空格(如果它是字符串中的第一个字符)。所以," FirstName"将变为 "  First Name" (注意 2 个空格)。

(?!^)是负面前瞻(?!pattern) , 只是检查这不是字符串的开头 ^ .我捕获 (pattern)大写英文字母,并在替换中使用捕获的文本 $1 ($1 表示捕获组 1 中捕获的任何内容都将放入替换字符串中 - 在这种情况下只有 1 个捕获组)。

另一种解决方案是在大写英文字母之前添加空格,前提是它前面有小写英文字母:

str.replaceAll("(?<=[a-z])([A-Z])", " $1")

(?<=[a-z])是一个积极的回头看(?<=pattern)检查是否大写字符 [A-Z]前面是小写英文字母[a-z] .其余的已经在上面解释过了。

根据要求,模式可能会有很大差异。你只举了一个例子,没有具体的要求,我就瞎猜,给你挑一个模式。

关于java - 在java中基于大写拆分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14827189/

相关文章:

java - 返回 CompletableFuture 的 Spring Transactional 方法

java - 如何绘制2个城市之间的距离(关系JPA)

Angular2 Dart 英雄之旅 : uppercase

带撇号的 Python 标题()

objective-c - 如何检测字符是大写还是小写?

c# - 检查字符串是否为 `moSTLy` 大写的快速方法

java - 枚举中的通用类字段

java - 如何在 Spring Boot 中从单个 Controller 返回内容数据和页面名称

java - 为什么我的字体无法绘制? (或加载?)——Java

java - Java String.toUpperCase() 会失败吗?