首页 > 解决方案 > 在遇到不是大写或标题大小写的单词后截断 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(" "));

标签: java

解决方案


首先,您需要使用Arrays.stream()将数组转换为流,并且您可以根据您的条件仅检查单词的第一个字母是否大写。

String name = Arrays.stream(text.split(" "))
        .takeWhile(w -> Character.isUpperCase(w.charAt(0)))
        .collect(Collectors.joining(" "));

推荐阅读