B3640 T3 句子反转
题目背景
请尽量在 30min 之内写完题目。这是指「写代码」的时间;「读题」时间不计算在内。
题目描述
给定一行句子,每个词之间用空格隔开,要么是全小写英文单词,要么是全大写英文单词,要么是自然数。
要求将这些单词倒序输出。而且对于每个单词,如果是小写词,应当转为大写;如果是大写词,应当转为小写;如果是自然数,应该倒转输出。
举一个例子:
we choose TO go 2 the 123 moon
程序应当输出:
MOON 321 THE 2 GO to CHOOSE WE
输入格式
仅一行,即需要反转的句子。
输出格式
仅一行,表示程序对句子的处理结果。
输入输出样例 #1
输入 #1
we choose TO go 2 the 123 moon
输出 #1
MOON 321 THE 2 GO to CHOOSE WE
说明/提示
样例解释
首先应当按单词逆序,即:
moon 123 the 2 go TO choose we
小写变大写、大写变小写、倒转自然数之后,得到最终结果:
MOON 321 THE 2 GO to CHOOSE WE
数据规模与约定
对于 的数据,句子中包含的单词数量不超过
,每个单词长度不超过
。
思路分析
用string s接收输入的字符串,再用数组arr记录每个用空格隔开的字符串。再遍历数组,如果字符串第一个为小写,则变成大写存入数组brr,若是大写同上,数字则用StringBuilder的reverse方法反转,再toString。最后倒序输出brr。
代码实现
package LAN;
import java.util.*;
public class juzifanzhaun {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
String[] arr = s.split(" ");
String[] brr = new String[arr.length];
int i= 0;
for(String a : arr) {
if(a.charAt(0) >= 'a'&&a.charAt(0) <= 'z' ) {
brr[i] = a.toUpperCase();
i++;
}
if(a.charAt(0) >= 'A'&&a.charAt(0) <= 'Z' ) {
brr[i] = a.toLowerCase();
i++;
}
if(a.charAt(0) >= '0'&&a.charAt(0) <= '9' ) {
StringBuilder b = new StringBuilder();
b.append(a);
String c = b.reverse().toString();
brr[i] = c;
i++;
}
}
for(int j = brr.length-1;j >= 0 ; j--) {
System.out.print(brr[j]+" ");
}
}
}