描述
对一个字符串中的所有单词,如果单词的首字母不是大写字母,则把单词的首字母变成大写字母。 在字符串中,单词之间通过空白符分隔,空白符包括:空格(' ')、制表符('\t')、回车符('\r')、换行符('\n')。
输入描述:
输入一行:待处理的字符串(长度小于100)。
输出描述:
可能有多组测试数据,对于每组数据, 输出一行:转换后的字符串。
示例1
输入:
if so, you already have a google account. you can sign in on the right.
输出:
If So, You Already Have A Google Account. You Can Sign In On The Right.
代码如下:
import java.util.Scanner;
/*
* 首字母大写
* 注意如果需要进行按位替换字符串中的字符,需要使用StringBuilder
*/
public class CapitalCase {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while(scanner.hasNext()) {
StringBuilder sb = new StringBuilder(scanner.nextLine());
//处理第一个字母
if (sb.charAt(0) >= 'a' && sb.charAt(0) <= 'z') {
//将第一个字母设置为大写
sb.replace(0, 1, Character.toString(sb.charAt(0)).toUpperCase());
}
//处理剩余字母
for (int i = 0; i < sb.length(); i++) {
if (sb.charAt(i) == ' ' || sb.charAt(i) == '\t' || sb.charAt(i) == '\r'||sb.charAt(i) == '\n') {
if(i<sb.length()-1) { //i不是指向最后一个位置
if (sb.charAt(i+1)>='a'&&sb.charAt(i+1)<='z') {
//将第i+1个字母替换成成大写
sb.replace(i+1, i+2, Character.toString(sb.charAt(i+1)).toUpperCase());
}
}
}
}
System.out.println(sb.toString());
}
}
}