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]);
        }

    }

}

 

posted @ 2016-08-27 20:47  sunshinelym  阅读(2075)  评论(0编辑  收藏  举报