[JAVA]字符串单词倒转处理前面的空格

问题来源:leetcode

问题描述:

Given an input string, reverse the string word by word.


想法就是用split函数,但是你会发现数组是没有倒转函数的,要么用循环倒转。要么转化成list调用Collections.reverse

这个时候又会遇到一个问题,reverse之后的数字时object的类型的要强制转换成string类型

代码:我

 1 //方法1 手动倒转
 2         s=s.trim();
 3         String[] str=s.split("\\s+");
 4         String[] rstr=new String[str.length];
 5         for(int i=0,j=str.length-1;j>=0;++i,--j)
 6         {
 7             rstr[i]=str[j];
 8         }
 9         s=String.join(" ",rstr);
10         return s; 
11 //方法2 函数倒转
12         s=s.trim();
13         String[] str=s.split("\\s+");
14         List<String> strs=new ArrayList<String>(Arrays.asList(str));
15         Collections.reverse(strs);
16         str=new String[strs.size()];
17         strs.toArray(str);
18         s=String.join(" ",str);       

leetcode优秀解法将上面object数组的转化直接放到join函数里

1 public String reverseWords(String s) {
2     String[] words = s.trim().split(" +");
3     Collections.reverse(Arrays.asList(words));
4     return String.join(" ", words);
5 }

 

posted @ 2019-03-03 16:55  jm_epiphany  阅读(246)  评论(0编辑  收藏  举报