Vowel Counting |
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) |
Total Submission(s): 2460 Accepted Submission(s): 1354 |
Problem Description
The "Vowel-Counting-Word"(VCW), complies with the following conditions.
Each vowel in the word must be uppercase. Each consonant (the letters except the vowels) must be lowercase. For example, "ApplE" is the VCW of "aPPle", "jUhUA" is the VCW of "Juhua". Give you some words; your task is to get the "Vowel-Counting-Word" of each word. |
Input
The first line of the input contains an integer T (T<=20) which means the number of test cases.
For each case, there is a line contains the word (only contains uppercase and lowercase). The length of the word is not greater than 50. |
Output
For each case, output its Vowel-Counting-Word.
|
Sample Input
4
XYz
application
qwcvb
aeioOa
|
Sample Output
xyz
ApplIcAtIOn
qwcvb
AEIOOA
|
Author
AppleMan
|
Source
HDU 2nd “Vegetable-Birds Cup” Programming Open Contest
|
Recommend
lcy
|
分析:
这个题目没有很难的算法问题,主要可以用于熟悉Java的基本函数操作。注意:这里在f()函数里面以char【】作为参数传递,可以直接对字符数组进行修改,不需要再领开辟空间。当使用String时,修改不方便。因此char【】可以用在需要修改存储内容的时候。
代码:
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Main {
private static final int N = 50;
public static void main(String[] args) {
char[] ch = new char[N];
int n;
Scanner in = new Scanner(System.in);
n = in.nextInt();
while (n-- != 0) {
ch = in.next().toCharArray();
f(ch);
System.out.println(ch);
}
}
public static void f(char[] ch) {
for (int i = 0; i < ch.length; i++) {
if (ch[i] == 'a' || ch[i] == 'e' || ch[i] == 'i' || ch[i] == 'o'
|| ch[i] == 'u') {
ch[i] = Character.toUpperCase(ch[i]);
} else if (ch[i] == 'A' || ch[i] == 'E' || ch[i] == 'I'
|| ch[i] == 'O' || ch[i] == 'U') {
continue;
} else {
ch[i] = Character.toLowerCase(ch[i]);
}
}
}
}