1. 程式人生 > >字串中英文單詞開頭字元大小寫轉換

字串中英文單詞開頭字元大小寫轉換

華為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);
		}
	}

}