欢迎访问宙启技术站
智能推送

Java函数实现字符串中每个单词首字母大写的方法

发布时间:2023-06-12 17:08:25

在Java编程中,有时候我们需要对一个字符串中的每个单词首字母进行大写处理。例如,将字符串 "hello world" 转换为 "Hello World"。本文将介绍几种实现这个功能的方法。

方法一:使用StringTokenizer类

StringTokenizer类是Java中一个用于分隔字符串的类,可以按照指定字符分隔一个字符串,并将分隔后的字符串存放在一个数组中。我们可以使用StringTokenizer类将一个字符串按照空格分隔为多个单词,然后将每个单词的首字母转换为大写。

下面是使用StringTokenizer实现该功能的代码:

public static String capitalize(String str) {
    StringTokenizer st = new StringTokenizer(str);
    StringBuilder sb = new StringBuilder();
    while (st.hasMoreTokens()) {
        String token = st.nextToken();
        sb.append(Character.toUpperCase(token.charAt(0))).append(token.substring(1)).append(" ");
    }
    return sb.toString().trim();
}

上述代码首先使用StringTokenizer将输入的字符串按照空格分隔为多个单词,然后遍历每个单词,将单词的 个字符转换为大写,然后将其余字符拼接起来,最后再将各个单词拼接成一个字符串返回。需要注意的是,最后一个单词后面不应该有空格,因此使用trim()方法去掉末尾的空格。

方法二:使用split方法

String类中的split方法可以将一个字符串按照指定分隔符分隔成多个子字符串,并返回一个字符串数组。我们可以使用split方法将输入的字符串按照空格分隔为多个单词,然后遍历每个单词,将单词的 个字符转换为大写,然后将其余字符拼接起来,最后再将各个单词拼接成一个字符串返回。

下面是使用split方法实现该功能的代码:

public static String capitalize(String str) {
    String[] words = str.split(" ");
    StringBuilder sb = new StringBuilder();
    for (String word : words) {
        sb.append(Character.toUpperCase(word.charAt(0))).append(word.substring(1)).append(" ");
    }
    return sb.toString().trim();
}

上述代码首先使用split方法将输入的字符串按照空格分隔为多个单词,然后遍历每个单词,将单词的 个字符转换为大写,然后将其余字符拼接起来,最后再将各个单词拼接成一个字符串返回。需要注意的是,最后一个单词后面不应该有空格,因此使用trim()方法去掉末尾的空格。

方法三:使用正则表达式

正则表达式是一种用于匹配字符串的表达式,可以在Java中使用正则表达式来匹配文本和处理文本。我们可以使用正则表达式将输入的字符串按照空格分隔为多个单词,然后遍历每个单词,将单词的 个字符转换为大写,然后将其余字符拼接起来,最后再将各个单词拼接成一个字符串返回。

下面是使用正则表达式实现该功能的代码:

public static String capitalize(String str) {
    String[] words = str.split("\\s+");
    StringBuilder sb = new StringBuilder();
    for (String word : words) {
        sb.append(Character.toUpperCase(word.charAt(0))).append(word.substring(1)).append(" ");
    }
    return sb.toString().trim();
}

上述代码使用正则表达式 "\\s+" 将输入的字符串按照空格分隔为多个单词,然后遍历每个单词,将单词的 个字符转换为大写,然后将其余字符拼接起来,最后再将各个单词拼接成一个字符串返回。需要注意的是,最后一个单词后面不应该有空格,因此使用trim()方法去掉末尾的空格。