ECNU 3241 字母替换
链接
https://acm.ecnu.edu.cn/problem/3241
题目
单点时限: 2.0 sec
内存限制: 256 MB
输入一个长度不超过80的字符串S,将字符串S中所有下标为偶数位置的英文字母转换为小写字母,若该位置上不是字母,则不转换。
例如,若输入ABC4efG,则输出aBc4efg。
输入格式
第 行为一个整数T(1≤T≤10)为问题数。
接下来T行,每行输入一个字符串,字符串长度≤80。
输出格式
对于每个问题,输出一行问题的编号( 开始编号,格式:case #0: 等),然后输出替换后的字符串。
样例
input
3
EWRDFDdfldfke
213233439849384934
?DF":(**^&WEqweWE
output
case #0:
eWrDfDdfldfke
case #1:
213233439849384934
case #2:
?Df":(**^&WeqwewE
思路
水题,直接字符串处理一下,偶数位的判定是否为大写字母,是就处理,不然就直接输出。
代码
public static void fun() {
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
for (int tt = 0; tt < t; tt++) {
String str = sc.next();
StringBuffer ss = new StringBuffer(str);
System.out.println("case #" + tt + ":");
for (int i = 0; i < ss.length(); i++) {
if (i % 2 == 0) {
char tmp = ss.charAt(i);
if (tmp >= 'A' && tmp <= 'Z') {
tmp = (char) (tmp - 'A' + 'a');
}
System.out.print(tmp);
} else {
System.out.print(ss.charAt(i));
}
}
System.out.println();
}
}