首页 > 代码库 > 35:字符串单词倒排 ReverseWords

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

 

35:字符串单词倒排 ReverseWords