Java:
字符串大写化

如何操作:

Java的标准库没有提供直接一次性将整个字符串大写的方法,但你可以结合内置方法来实现这一目标。对于更复杂的需求,第三方库像Apache Commons Lang提供了直接的解决方案。

使用Java的内置方法

不使用外部库来大写字符串,你可以将字符串分割成单词,将每个单词的首字母大写,然后再将它们重新连接。这里有一个简单的方法:

public class CapitalizeString {
    public static void main(String[] args) {
        String text = "hello, world!";
        String capitalizedText = capitalizeWords(text);
        System.out.println(capitalizedText); // 输出: "Hello, World!"
    }

    public static String capitalizeWords(String str) {
        char[] chars = str.toLowerCase().toCharArray();
        boolean found = false;
        for (int i = 0; i < chars.length; i++) {
            if (!found && Character.isLetter(chars[i])) {
                chars[i] = Character.toUpperCase(chars[i]);
                found = true;
            } else if (Character.isWhitespace(chars[i]) || chars[i]=='.' || chars[i]=='\'') { 
                found = false;
            }
        }
        return String.valueOf(chars);
    }
}

这段代码将整个字符串转换为小写,然后遍历每个字符,将每个单词的首字母大写。它将空格、句号和撇号视为单词分隔符。

使用Apache Commons Lang

Apache Commons Lang库使用WordUtils.capitalizeFully()方法提供了更优雅的解决方案,这个方法为你处理了各种边缘情况和分隔符:

// 添加依赖: org.apache.commons:commons-lang3:3.12.0

import org.apache.commons.text.WordUtils;

public class CapitalizeString {
    public static void main(String[] args) {
        String text = "hello, world!";
        String capitalizedText = WordUtils.capitalizeFully(text);
        System.out.println(capitalizedText); // 输出: "Hello, World!"
    }
}

要使用这个方法,你需要将Apache Commons Lang库添加到你的项目中。这个库方法不仅将每个单词的首字母大写,还将每个单词中其余的字母转换为小写,确保整个字符串中的大小写模式一致。