编写一个Java程序,将用户输入的句子当中每一个单词的第一个字母大写,而单词中的其余字母小写。
例如:当用户输入”This is a samPLe sentencE to demostrATE the TasK 2.”
程序应该输出:This Is A Sample Sentence To Demonstrate The Task 2.
要求:程序运行后要求用户输入一个句子。然后提取每一个单词,并将单词的首字母转换成大写,其余字符小写。使用StringBuffer类来创建替换过大小写的新字符串。最后输出新字符串。
提示:需要使用Scanner的nextLine()方法来获取一个句子。注意:单词的分割符除了空格之外,还可能有Tab或者(,;.等标点符号)。注意判断首字符是不是字母。单词中的其他字母可能为大写。
import java.util.Scanner;
public class CapitalizeWords {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个句子:");
String inputSentence = scanner.nextLine();
scanner.close();
String[] words = inputSentence.split("[ \t,;.]+"); // 使用正则表达式分割单词
StringBuilder result = new StringBuilder();
for (String word : words) {
if (!word.isEmpty()) { // 检查单词是否非空
char firstChar = word.charAt(0);
if (Character.isLetter(firstChar)) { // 检查首字符是否为字母
String capitalizedWord = Character.toUpperCase(firstChar) + word.substring(1).toLowerCase();
result.append(capitalizedWord).append(" ");
} else {
// 首字符不是字母,保持原样
result.append(word).append(" ");
}
}
}
String finalResult = result.toString().trim(); // 移除末尾的空格
System.out.println("处理后的句子:");
System.out.println(finalResult);
}
}