如何在单词开头仅创建大写字母?

时间:2019-05-21 08:21:36

标签: java

我需要制定一种仅在单词开头才使用大写字母的方法,这也许很容易,但是到目前为止我还无法使其工作。因为我测试过的用例是diff,所以我没有第一个字符是字符串的情况,它可以是数字或其他。

The result I want :
test => Test
test start now => Test start now.
2test start now => 2test start now
_test => _test
-test => -test

3 个答案:

答案 0 :(得分:1)

  1. 检查第一个字符是否为字母
  2. 将字母更改为大写
    List<String> values = Arrays.asList("test => Test",
            "test start now => Test start now.",
            "2test start now => 2test start now",
            "_test => _test",
            "-test => -test");

    @Test
    public void firstLetterUpperCase() {
        // Iterate the values
        values.stream()
                // Check if the first char is Alphabetic
                .filter(text -> Character.isAlphabetic(text.charAt(0)))
                // Capital first letter and print
                .forEach(text -> System.out.println(text.substring(0, 1).toUpperCase() + text.substring(1)));
    }

输出

Test => Test
Test start now => Test start now.

答案 1 :(得分:0)

String text = "text";
String capitalize = text.substring(0, 1).toUpperCase() + text.substring(1);

它需要第一个字符,并执行toUpperCase(),然后添加其余的字符串。

如果第一个字符不是字母,toUpperCase()不会更改它。

  • "-".toUpperCase()"-"
  • "1".toUpperCase()"1"
  • "a".toUpperCase()"A"
  • "A".toUpperCase()"A"

答案 2 :(得分:0)

您还可以使用org.apache.commons.text.WordUtils.capitalize​(String str, char... delimiters)中的apache.commons-text Javadoc来使单词大写。

针对您的请求,它会将字符串/句子中的所有单词大写,而不仅仅是第一个字符。

要大写String的第一个字符,请使用org.apache.commons.lang3.StringUtils .capitalize(String str)包中的apache.commons-langJavadoc)。