35:字符串单词倒排 ReverseWords
题目描述:对字符串中的所有单词进行倒排。
说明:
1、每个单词是以26个大写或小写英文字母构成;
2、非构成单词的字符均视为单词间隔符;
3、要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符;
4、每个单词最长20个字母;
输入描述:输入一行以空格来分隔的句子
输出描述:输出句子的逆序
输入例子:I am a student
输出例子:student a am I
注意:
非构成单词的字符均视为单词间隔符--》split("[^a-zA-Z]+"),参数为一个正则表达式。
一定要注意:::split在分隔字符串的时候,如果这个字符串的起始位置就匹配正则表达式,那么你分隔得到的字符串数组的第一个元素是一个空串,
如果这个字符串的末尾位置匹配正则表达式,那么忽略,你得到的字符串数组中没有包含空串的元素
import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in = new Scanner(System.in); while(in.hasNext()) { String input = in.nextLine(); String[] inputArray = input.split("[^a-zA-Z]+"); for(int i = inputArray.length-1; i >= 2; i--) { System.out.print(inputArray[i] + " "); } if(inputArray[0].length()==0) //如果字符串数组的第一个元素是空串,那么下标为1的元素就是最后一个要输出的元素,末尾不要再加空格 { System.out.print(inputArray[1]); }else System.out.print(inputArray[1] + " " + inputArray[0]); } } }