Java函数实现字符串中每个单词首字母大写的方法
在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()方法去掉末尾的空格。
