华为2016年实习生招聘笔试题:输入一个英文句子的字符串,修改每个英文单词的首字母的大小写,即大写改为小写,小写改为大写,并返回修改后的字符串
package com.javaexam.test;
import java.util.Scanner;
public class CharExchange {
public static void main(String[] args){
Scanner in = new Scanner(System.in);
while(in.hasNext()){
String str = in.nextLine();//将整行字符串读入
int index = 0;
String result = "";
while(index<str.length()){
int i = str.indexOf(" ",index);//获取单词之间的空格位置
String aa;
String cc = "";
if(i!=-1){
aa = str.substring(index,i);//截取空格与空格之间的字符串,即一个英文单词
char c = aa.charAt(0);//获得首字符的字符
if(Character.isLowerCase(c)){//判断首字母是否为小写,是则改为大写,并拼回字符串中
cc = Character.toUpperCase(c) + aa.substring(1) + " ";
}if(Character.isUpperCase(c)){//判断首字符是否为大写,是则改为小写
cc = Character.toLowerCase(c) + aa.substring(1) + " ";
}
index = i+1;
}else{
aa = str.substring(index);//最后一个单词只有前面有空格,后面没有空格,因此此处截取最后一个单词
char c = aa.charAt(0);
if(Character.isLowerCase(c)){
cc = Character.toUpperCase(c) + aa.substring(1);
}if(Character.isUpperCase(c)){
cc = Character.toLowerCase(c) + aa.substring(1);
}
index = str.length();
}
result = result + cc;
}
System.out.println(result);
}
}
}