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

本文详细解析了LeetCode上的一道经典题目——按单词逆序字符串的两种解法。第一种方法通过手动循环实现字符串数组的逆序,第二种方法则利用Java集合框架的便利函数简化代码。同时,文章分享了一种优秀的解法,巧妙地在join函数中完成对象数组到字符串的转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题来源: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 }

 

转载于:https://www.cnblogs.com/cuphoria/p/10466334.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值