問題:http://www.topcoder.com/stat?c=problem_statement&pm=11101 (要ログイン)
本番.
空白で分割した文字列単位で1.母音(a,i,u,e,o)のみはその文字列.2.子音(母音以外)が含まれるときは連続した子音の最初だけを取り出した文字列.の条件を満たす文字列を出力.
public class TxMsg { public String getMessage(String original) { StringBuffer sb = new StringBuffer(); for(String word : original.split(" ")){ int n = word.length(); if(isAllVowels(word)){ sb.append(word); }else{ String r = ""; r += isVowels(word.charAt(0))?"":word.charAt(0); for(int i = 1; i < n; ++i){ char c = word.charAt(i); if(!isVowels(c)&&isVowels(word.charAt(i-1))){ r += c; } } sb.append(r); } sb.append(" "); } return sb.toString().trim(); } boolean isAllVowels(String word){ for(char c : word.toCharArray()){ if(!isVowels(c)){ return false; } } return true; } boolean isVowels(char c) { for (char v : new char[] { 'a', 'i', 'u', 'e', 'o' }) { if (v == c) { return true; } } return false; } }