题目描述
对字符串中的所有单词进行倒排。
说明:
1、每个单词是以26个大写或小写英文字母构成;
2、非构成单词的字符均视为单词间隔符;
3、要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符;
4、每个单词最长20个字母;
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNextLine()){
String input = sc.nextLine();
reverse(input);
}
}
public static void reverse(String input){
char[] chs = input.toCharArray();
for(int i=0;i<chs.length;i++){
if(chs[i]>='a'&&chs[i]<='z'||chs[i]>='A'&&chs[i]<='Z'){
chs[i]=chs[i];
}else{
chs[i]=' ';
}
}
input= String.valueOf(chs).trim();
String[] strArray = input.split("\\s+");//\\s表示空格,回车,换行等空白符,+表示一个或者多个
StringBuffer sb = new StringBuffer();
int count = strArray.length;
for(int i=count-1;i>=0;i--){
if(i==0){
sb.append(strArray[i]);
}else{
sb.append(strArray[i]);
sb.append(" ");
}
}
System.out.println(sb.toString());
}
}