java - 在遇到不是大写或标题大小写的单词后截断 Java 中的字符串
问题描述
我只想取字符串中大写或标题大小写的单词,在遇到两者都不是的单词后停止。
例如,DOCTOR Foo Bar is not here
将成为DOCTOR Foo Bar
并且the NURSE Joy healed him
将返回一个空字符串,因为第一个单词既不是大写也不是大写。
我想做类似的事情,但下面的代码不起作用。
String name = text.split(" ").stream()
.takeWhile(w -> w.isUpperCase() || w.isTitleCase())
.collect(joining(" "));
解决方案
首先,您需要使用Arrays.stream()
将数组转换为流,并且您可以根据您的条件仅检查单词的第一个字母是否大写。
String name = Arrays.stream(text.split(" "))
.takeWhile(w -> Character.isUpperCase(w.charAt(0)))
.collect(Collectors.joining(" "));
推荐阅读
- angularjs - 从指令向父元素添加类
- azure-devops - 是否可以隐藏 Azure DevOps Wiki 中的页面?
- python - Python:Glob 只读取一个文件而不是两个
- multithreading - 为什么加入一个线程最终会调用多个线程?
- java - 是否可以将 ZipOutputStream 和 DigestOutputstream 结合起来?
- powershell - 使用 AAD 身份验证调用 Sqlcmd
- java - 字符串扫描仪
- java - 如果 auto-commit=false,Hikari DataSource 在 Spring Boot 中返回 null
- javascript - 这个javascript分配有什么区别?
- python - Pandas:将字典中的多个数据框转换为 excel 工作簿,每个键作为每个选项卡的名称